Commit 071b0bc9 authored by Raymond Hettinger's avatar Raymond Hettinger

Forward slash warnings now only occur for potentially valid LaTeX commands.

(Idea contributed by Anthony Baxter.)
parent aa6b856a
...@@ -16,7 +16,6 @@ Command line usage: ...@@ -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=[]): ...@@ -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=[]): ...@@ -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=[]): ...@@ -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=[]): ...@@ -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__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment