GNU bug report logs -
#62056
[PATCH] guix: Only issue erase-current-line sequence for ttys.
Previous Next
Full log
Message #8 received at 62056 <at> debbugs.gnu.org (full text, mbox):
Hi,
Bruno Victal <mirai <at> makinata.eu> skribis:
> * guix/progress.scm (erase-current-line): Only issue erase-current-line sequence for ttys.
> ---
>
> Avoids cluttering log lines with �[K when output is logged to a file.
+1!
> (define (erase-current-line port)
> - "Write an ANSI erase-current-line sequence to PORT to erase the whole line and
> -move the cursor to the beginning of the line."
> - (display "\r\x1b[K" port))
> + "When @var{port} is interactive, write an ANSI erase-current-line sequence
> +to erase the whole line and move the cursor to the beginning of the line,
> +otherwise write a newline."
> + (if (isatty? port)
> + (display "\r\x1b[K" port)
> + (newline port)))
We should avoid calling ‘isatty?’ every time, it’s too costly, which is
why there’s also ‘isatty?*’ somewhere that memoizes things.
However, it seems up to the caller to check that before calling
‘erase-current-line’. That seems to be the case within progress.scm and
in (guix status).
Could you see which use of ‘erase-current-line’ is causing problems?
TIA,
Ludo’.
This bug report was last modified 1 year and 80 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.