]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/pretty-print: print color sequence only when needed
authorMike Yuan <me@yhndnzj.com>
Sat, 2 Mar 2024 03:45:02 +0000 (11:45 +0800)
committerMike Yuan <me@yhndnzj.com>
Sat, 2 Mar 2024 03:50:34 +0000 (11:50 +0800)
Follow-up for 71cb203a6ea6de409c6b9c042feda2ff655101e9

src/shared/pretty-print.c

index 543a9ebdcb9712ed503b20c671c39efe48826cf6..af44bb2ca2e010f94b577d421e7e102d49deaeb1 100644 (file)
@@ -465,7 +465,7 @@ int terminal_tint_color(double hue, char **ret) {
 
 void draw_progress_bar(const char *prefix, double percentage) {
 
-        fputs("\r", stderr);
+        fputc('\r', stderr);
         if (prefix)
                 fputs(prefix, stderr);
 
@@ -474,12 +474,12 @@ void draw_progress_bar(const char *prefix, double percentage) {
                 size_t prefix_length = strlen_ptr(prefix);
                 size_t length = cols > prefix_length + 6 ? cols - prefix_length - 6 : 0;
 
-                fputs(ansi_highlight_green(), stderr);
-
                 if (length > 5 && percentage >= 0.0 && percentage <= 100.0) {
                         size_t p = (size_t) (length * percentage / 100.0);
                         bool separator_done = false;
 
+                        fputs(ansi_highlight_green(), stderr);
+
                         for (size_t i = 0; i < length; i++) {
 
                                 if (i <= p) {