indexes by the built-in sequence types, and the \method{__*item__()}
methods are expected to do this as well. However, since they should
already be doing that, negative indexes cannot be passed in; they must
-be be constrained to the bounds of the sequence before being passed to
+be constrained to the bounds of the sequence before being passed to
the \method{__*item__()} methods.
Calling \code{max(0, i)} conveniently returns the proper value.
Tools/Demos
-----------
+- texcheck.py now detects double word errors.
+
- md5sum.py mistakenly opened input files in text mode by default, a
silent and dangerous change from previous releases. It once again
opens input files in binary mode by default. The -t and -b flags
delimiters = re.compile(r'\\(begin|end){([_a-zA-Z]+)}|([()\[\]])')
braces = re.compile(r'({)|(})')
+ doubledwords = re.compile(r'(\b[A-za-z]+\b) \b\1\b')
openers = [] # Stack of pending open delimiters
bracestack = [] # Stack of pending open braces
if 'e.g.' in line or 'i.e.' in line:
print r'Style warning, avoid use of i.e or e.g. on line %d' % (lineno,)
+ for dw in doubledwords.findall(line):
+ print r'Doubled word warning. "%s" on line %d' % (dw, lineno)
lastline = lineno
for lineno, symbol in openers: