diff options
Diffstat (limited to 'pygments/cmdline.py')
-rw-r--r-- | pygments/cmdline.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/pygments/cmdline.py b/pygments/cmdline.py index b6c319cf..c3f00fca 100644 --- a/pygments/cmdline.py +++ b/pygments/cmdline.py @@ -331,10 +331,13 @@ def main(args=sys.argv): opts.pop('-F', None) # select lexer - lexer = opts.pop('-l', None) - if lexer: + lexer = None + + # given by name? + lexername = opts.pop('-l', None) + if lexername: try: - lexer = get_lexer_by_name(lexer, **parsed_opts) + lexer = get_lexer_by_name(lexername, **parsed_opts) except (OptionError, ClassNotFound) as err: print('Error:', err, file=sys.stderr) return 1 @@ -461,12 +464,16 @@ def main(args=sys.argv): right = escapeinside[1] lexer = LatexEmbeddedLexer(left, right, lexer) - # ... and do it! - try: - # process filters - for fname, fopts in F_opts: + # process filters + for fname, fopts in F_opts: + try: lexer.add_filter(fname, **fopts) + except ClassNotFound as err: + print('Error:', err, file=sys.stderr) + return 1 + # ... and do it! + try: if '-s' not in opts: # process whole input as per normal... highlight(code, lexer, fmter, outfile) @@ -494,7 +501,6 @@ def main(args=sys.argv): return 0 except Exception: - raise import traceback info = traceback.format_exception(*sys.exc_info()) msg = info[-1].strip() |