[libcamera-devel] [PATCH] utils: checkstyle.py: Fix color bleed
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Jun 3 22:33:08 CEST 2022
Hi Tomi,
On Fri, Jun 03, 2022 at 09:09:24AM +0300, Tomi Valkeinen wrote:
> On 30/05/2022 11:22, Laurent Pinchart wrote:
> > On Mon, May 30, 2022 at 10:22:28AM +0300, Tomi Valkeinen wrote:
> >> If issue.line is None, the the terminal color is never reset back to
> >> normal. This causes the yellow color to bleed.
> >>
> >> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> >> ---
> >> utils/checkstyle.py | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/utils/checkstyle.py b/utils/checkstyle.py
> >> index 835f2a9f..fa0513f2 100755
> >> --- a/utils/checkstyle.py
> >> +++ b/utils/checkstyle.py
> >> @@ -743,9 +743,9 @@ def check_file(top_level, commit, filename):
> >> if len(issues):
> >> issues = sorted(issues, key=lambda i: i.line_number)
> >> for issue in issues:
> >> - print('%s#%u: %s' % (Colours.fg(Colours.Yellow), issue.line_number, issue.msg))
> >> + print('%s#%u: %s%s' % (Colours.fg(Colours.Yellow), issue.line_number, issue.msg, Colours.reset()))
> >
> > This could be wrapped.
> >
> >> if issue.line is not None:
> >> - print('+%s%s' % (issue.line.rstrip(), Colours.reset()))
> >> + print('%s+%s%s' % (Colours.fg(Colours.Yellow), issue.line.rstrip(), Colours.reset()))
> >
> > I think I would have added
> >
> > sys.stdout.write(Colours.reset())
> >
> > here (and dropped it from the previous line) to avoid outputting it
> > twice, but that makes no big difference. Either way,
>
> There are many ways to do this, of course. If we want to optimize, we'll
> print Yellow only once, then the text lines, and a reset at the end. But
> that would be a rather pointless optimization.
>
> I thought it's most obvious for the reader and easiest to maintain if we
> print a color and a reset in the same print() call.
>
> In fact, I think it would be better to have a function, colorize(color,
> str), which returns the str with color and reset. This is what e.g.
> xtermcolor module does.
That's a good point. There's clearly no need to optimize this for
performance, so if someone wants to add a colorize() function, I'll be
happy to merge it. In the meantime I'll merge your patch with the line
wrap I proposed.
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list