chistedit: use default curses colours
authorJordi Gutiérrez Hermoso <jordigh@octave.org>
Fri, 05 Apr 2019 14:54:45 -0400
changeset 42088 770e87999701
parent 42087 2e2699af5649
child 42089 16692aa3472b
chistedit: use default curses colours Terminals will define default colours (for example, white text on black background), but curses doesn't obey those default colours unless told to do so. Calling `curses.use_default_colors` makes curses obey the default terminal colours. One of the most obvious effects is that this allows transparency on terminals that support it. This also brings chistedit closer in appearance to crecord, which also uses default colours. The call may error out if the terminal doesn't support colors, but as far as I can tell, everything still works. If we need a more careful handling of lack of colours, blame me for not doing it now.
hgext/histedit.py
--- a/hgext/histedit.py	Sun Apr 07 16:53:47 2019 +0200
+++ b/hgext/histedit.py	Fri Apr 05 14:54:45 2019 -0400
@@ -1238,6 +1238,11 @@
     return displayer.hunk[rule.ctx.rev()].splitlines()
 
 def _chisteditmain(repo, rules, stdscr):
+    try:
+        curses.use_default_colors()
+    except curses.error:
+        pass
+
     # initialize color pattern
     curses.init_pair(COLOR_HELP, curses.COLOR_WHITE, curses.COLOR_BLUE)
     curses.init_pair(COLOR_SELECTED, curses.COLOR_BLACK, curses.COLOR_WHITE)