Mercurial > hg-stable
view tests/filtertraceback.py @ 51149:e306d552dfb1 stable
histedit: remove superfluous echo() and endwin() calls (issue6859)
ncurses patchlevel 20231111 started returning an error from endwin() if
called twice without a intervening screen update.
Per Sven Joachim in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058041#17: "AFAICS,
invoking curses.echo() and curses.endwin() is superfluous
because curses.wrapper already does that for you, and calling
curses.endwin() twice throws an error with the newer ncurses. Removing
those two lines should fix the problem."
author | Julien Cristau <jcristau@mozilla.com> |
---|---|
date | Tue, 12 Dec 2023 11:47:48 +0100 |
parents | fe044ce4bb17 |
children |
line wrap: on
line source
#!/usr/bin/env python3 # Filters traceback lines from stdin. import io import sys if sys.version_info[0] >= 3: # Prevent \r from being inserted on Windows. sys.stdout = io.TextIOWrapper( sys.stdout.buffer, sys.stdout.encoding, sys.stdout.errors, newline="\n", line_buffering=sys.stdout.line_buffering, ) state = 'none' for line in sys.stdin: if state == 'none': if line.startswith('Traceback '): state = 'tb' elif state == 'tb': if line.startswith(' File '): state = 'file' continue elif not line.startswith(' '): state = 'none' elif not line.replace('^', '').replace('~', '').strip(): # PEP 657: Fine-grained error locations in tracebacks # ~~~~~~^^^^^^^^^ continue elif state == 'file': # Ignore lines after " File " state = 'tb' continue print(line, end='')