mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
Forward slash warnings now only occur for potentially valid LaTeX commands.
(Idea contributed by Anthony Baxter.)
This commit is contained in:
parent
aa6b856a42
commit
071b0bc9f8
1 changed files with 8 additions and 8 deletions
|
@ -16,7 +16,6 @@ Command line usage:
|
||||||
Options:
|
Options:
|
||||||
-m Munge parenthesis and brackets. [0,n) would normally mismatch.
|
-m Munge parenthesis and brackets. [0,n) would normally mismatch.
|
||||||
-k keyword: Keyword is a valid LaTeX command. Do not include the backslash.
|
-k keyword: Keyword is a valid LaTeX command. Do not include the backslash.
|
||||||
-f: Forward-slash warnings suppressed.
|
|
||||||
-d: Delimiter check only (useful for non-LaTeX files).
|
-d: Delimiter check only (useful for non-LaTeX files).
|
||||||
-h: Help
|
-h: Help
|
||||||
-s lineno: Start at lineno (useful for skipping complex sections).
|
-s lineno: Start at lineno (useful for skipping complex sections).
|
||||||
|
@ -75,9 +74,8 @@ def checkit(source, opts, morecmds=[]):
|
||||||
|
|
||||||
Opts is a mapping of options to option values if any:
|
Opts is a mapping of options to option values if any:
|
||||||
-m munge parenthesis and brackets
|
-m munge parenthesis and brackets
|
||||||
-f forward slash warnings to be skipped
|
|
||||||
-d delimiters only checking
|
-d delimiters only checking
|
||||||
-v verbose listing on delimiters
|
-v verbose listing of delimiters
|
||||||
-s lineno: linenumber to start scan (default is 1).
|
-s lineno: linenumber to start scan (default is 1).
|
||||||
|
|
||||||
Morecmds is a sequence of LaTeX commands (without backslashes) that
|
Morecmds is a sequence of LaTeX commands (without backslashes) that
|
||||||
|
@ -85,6 +83,7 @@ def checkit(source, opts, morecmds=[]):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
texcmd = re.compile(r'\\[A-Za-z]+')
|
texcmd = re.compile(r'\\[A-Za-z]+')
|
||||||
|
falsetexcmd = re.compile(r'\/([A-Za-z]+)') # Mismarked with forward slash
|
||||||
|
|
||||||
validcmds = sets.Set(cmdstr.split())
|
validcmds = sets.Set(cmdstr.split())
|
||||||
for cmd in morecmds:
|
for cmd in morecmds:
|
||||||
|
@ -114,10 +113,11 @@ def checkit(source, opts, morecmds=[]):
|
||||||
for lineno, line in izip(count(startline), islice(source, startline-1, None)):
|
for lineno, line in izip(count(startline), islice(source, startline-1, None)):
|
||||||
line = line.rstrip()
|
line = line.rstrip()
|
||||||
|
|
||||||
if '/' in line and '-f' not in opts and '-d' not in opts:
|
if '/' in line and '-d' not in opts:
|
||||||
# Warn whenever forward slashes encountered
|
# Warn whenever forward slashes encountered with a LaTeX command
|
||||||
line = line.rstrip()
|
for cmd in falsetexcmd.findall(line):
|
||||||
print 'Warning, forward slash on line %d: %s' % (lineno, line)
|
if '\\' + cmd in validcmds:
|
||||||
|
print 'Warning, forward slash used on line %d with cmd: /%s' % (lineno, cmd)
|
||||||
|
|
||||||
if '-d' not in opts:
|
if '-d' not in opts:
|
||||||
# Validate commands
|
# Validate commands
|
||||||
|
@ -179,7 +179,7 @@ def checkit(source, opts, morecmds=[]):
|
||||||
def main(args=None):
|
def main(args=None):
|
||||||
if args is None:
|
if args is None:
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
optitems, arglist = getopt.getopt(args, "k:mfdhs:v")
|
optitems, arglist = getopt.getopt(args, "k:mdhs:v")
|
||||||
opts = dict(optitems)
|
opts = dict(optitems)
|
||||||
if '-h' in opts or args==[]:
|
if '-h' in opts or args==[]:
|
||||||
print __doc__
|
print __doc__
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue