# HG changeset patch # User Mads Kiilerich # Date 2014-05-03 01:29:30 # Node ID 75aaae8ad6600c333e8b24492f3970eb1417138e # Parent 4898c37e03c0b804d6ca8c3ad341dceb53ff5806 color: don't fail on error messages when no curses (issue4237) The error only occured when Python didn't have curses - such as on Windows and when Python was built without curses support. No curses can also be emulated by (re)moving .../lib/python2.7/curses/ from the Python installation. It is left as an exercise to figure out exactly what changed in Mercurial that triggered this error. diff --git a/hgext/color.py b/hgext/color.py --- a/hgext/color.py +++ b/hgext/color.py @@ -230,7 +230,7 @@ try: 'cyan': (False, curses.COLOR_CYAN), 'white': (False, curses.COLOR_WHITE)} except ImportError: - _terminfo_params = False + _terminfo_params = {} _styles = {'grep.match': 'red bold', 'grep.linenumber': 'green', diff --git a/tests/test-status-color.t b/tests/test-status-color.t --- a/tests/test-status-color.t +++ b/tests/test-status-color.t @@ -319,4 +319,17 @@ hg resolve with one unresolved, one reso \x1b[0;31;1mU a\x1b[0m (esc) \x1b[0;32;1mR b\x1b[0m (esc) +color coding of error message with current availability of curses + + $ hg unknowncommand > /dev/null + hg: unknown command 'unknowncommand' + [255] + +color coding of error message without curses + + $ echo 'raise ImportError' > curses.py + $ PYTHONPATH=`pwd`:$PYTHONPATH hg unknowncommand > /dev/null + hg: unknown command 'unknowncommand' + [255] + $ cd ..