[PATCH] color: replace "purple_background" by "magenta_background"

Danek Duvall danek.duvall at oracle.com
Thu Oct 13 15:07:16 EDT 2016


Pierre-Yves David wrote:

> 
> 
> On 10/11/2016 11:39 AM, Denis Laxalde wrote:
> ># HG changeset patch
> ># User Denis Laxalde <denis.laxalde at logilab.fr>
> ># Date 1476176128 -7200
> >#      Tue Oct 11 10:55:28 2016 +0200
> ># Node ID 1cf20c1c54cb8172816604de5e1d98d3cd62d711
> ># Parent  b85fa6bf298be07804a74d8fdec0d19fdbc6d740
> ># EXP-Topic color-purple-crash
> >color: replace "purple_background" by "magenta_background"
> 
> We probably want to keep both value around for backward compatibility
> reason.
> 
> I'm also a bit curious about what all this is about. Can I convinced you to
> dig it a bit further?

_effect_str() strips "_background" off of an effect name to grab the color
name so it can figure out what color code to use.  Since we define
"purple_background", but "magenta" instead of "purple" (and
"magenta_background" doesn't exist, either), then this blows up.

I'll be sending out a patch shortly that just covers up this KeyError, but
either defining purple or magenta_background (or, probably, both) probably
ought to be done, anyway.

Danek

> >`hg debugcolor` crashes on my terminal:
> >
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 530, in debugcolor
> >        ui.write(('%s\n') % colors, label=label)
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 446, in write
> >        *[self.label(a, label) for a in args], **opts)
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 488, in label
> >        for s in msg.split('\n')])
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 396, in render_effects
> >        for effect in ['none'] + effects.split())
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 396, in <genexpr>
> >        for effect in ['none'] + effects.split())
> >      File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 378, in _effect_str
> >        attr, val = _terminfo_params[effect]
> >    KeyError: 'purple'
> >
> >Not sure where this "purple" comes (been there from initial file check in)
> >from but "magenta" seems more appropriate.
> >
> >diff --git a/hgext/color.py b/hgext/color.py
> >--- a/hgext/color.py
> >+++ b/hgext/color.py
> >@@ -182,7 +182,7 @@ testedwith = 'ships-with-hg-core'
> >             'italic': 3, 'underline': 4, 'inverse': 7, 'dim': 2,
> >             'black_background': 40, 'red_background': 41,
> >             'green_background': 42, 'yellow_background': 43,
> >-            'blue_background': 44, 'purple_background': 45,
> >+            'blue_background': 44, 'magenta_background': 45,
> >             'cyan_background': 46, 'white_background': 47}
> >
> > def _terminfosetup(ui, mode):
> >@@ -591,7 +591,7 @@ else:
> >         'green_background': _BACKGROUND_GREEN,
> >         'yellow_background': _BACKGROUND_RED | _BACKGROUND_GREEN,
> >         'blue_background': _BACKGROUND_BLUE,
> >-        'purple_background': _BACKGROUND_BLUE | _BACKGROUND_RED,
> >+        'magenta_background': _BACKGROUND_BLUE | _BACKGROUND_RED,
> >         'cyan_background': _BACKGROUND_BLUE | _BACKGROUND_GREEN,
> >         'white_background': (_BACKGROUND_RED | _BACKGROUND_GREEN |
> >                              _BACKGROUND_BLUE),
> >_______________________________________________
> >Mercurial-devel mailing list
> >Mercurial-devel at mercurial-scm.org
> >https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> >
> 
> -- 
> Pierre-Yves David
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list