From 73fc6499d8416fc262c5d28688b91bf4580ab2b8 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 28 Jun 2021 09:06:06 +0200 Subject: [PATCH] [fix] utils/lib.sh: in a pipe, do not print ASCII escape code In 2a12637 an ASCII escape code was added, such escape codes should not be written to pipes (when the output is not a terminal). Signed-off-by: Markus Heiser --- utils/lib.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/utils/lib.sh b/utils/lib.sh index b75e3376b..185012c5d 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -78,9 +78,18 @@ required_commands() { # shellcheck disable=SC2034 set_terminal_colors() { - _colors=8 + # https://en.wikipedia.org/wiki/ANSI_escape_code + + # CSI (Control Sequence Introducer) sequences + _show_cursor='\e[?25h' + _hide_cursor='\e[?25l' + + # SGR (Select Graphic Rendition) parameters _creset='\e[0m' # reset all attributes + # original specification only had 8 colors + _colors=8 + _Black='\e[0;30m' _White='\e[1;37m' _Red='\e[0;31m' @@ -271,7 +280,7 @@ prefix_stdout () { echo -e "${prefix}$line" done) # some piped commands hide the cursor, show cursory when the stream ends - echo -en "\e[?25h" + echo -en "$_show_cursor" } append_line() {