view doc/docchecker @ 28192:cb6a952efbf4 stable

revert: properly revert to ancestor of p2 during merge (issue5052) During merge, added (from one perspective) file can be reported as "modified". To work around that, revert was testing if modified file were present in the parent manifest and marking them as "added" in this case. However, we should be checking against the target revision manifest instead. Otherwise see file as "newly added" even if they exist in the target revision. That revert behavior regressed in 06fbd9518bc5.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 23 Feb 2016 11:41:47 +0100
parents 3d1baa702d1a
children 72b02b498b35
line wrap: on
line source

#!/usr/bin/env python
#
# docchecker - look for problematic markup
#
# Copyright 2016 timeless <timeless@mozdev.org> and others
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
import sys
import re

leadingline = re.compile(r'(^\s*)(\S.*)$')
hg_backtick = re.compile(r""":hg:`[^`]*'[^`]*`""")
hg_cramped = re.compile(r'\w:hg:`')

def check(line):
  if hg_backtick.search(line):
    print(line)
    print("""warning: please avoid nesting ' in :hg:`...`""")
  if hg_cramped.search(line):
    print(line)
    print('warning: please have a space before :hg:')

def work(file):
  (llead, lline) = ('', '')

  for line in file:
    # this section unwraps lines
    match = leadingline.match(line)
    if not match:
      check(lline)
      (llead, lline) = ('', '')
      continue

    lead, line = match.group(1), match.group(2)
    if (lead == llead):
      if (lline != ''):
        lline += ' ' + line
      else:
        lline = line
    else:
      check(lline)
      (llead, lline) = (lead, line)
  check(lline)

def main():
  for f in sys.argv[1:]:
    try:
      with open(f) as file:
        work(file)
    except:
      print("failed to process %s" % f)

main()