From d61a4dbba93a2b34dc85522e432c30ca152d4dda Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 22 Nov 2023 07:01:50 +0900 Subject: [PATCH] pid1: move draw_cylong() to pretty-print.[ch] --- src/core/manager.c | 39 +-------------------------------------- src/shared/pretty-print.c | 36 ++++++++++++++++++++++++++++++++++++ src/shared/pretty-print.h | 4 ++++ 3 files changed, 41 insertions(+), 38 deletions(-) diff --git a/src/core/manager.c b/src/core/manager.c index b4989e7855b..60a96611604 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -71,6 +71,7 @@ #include "path-lookup.h" #include "path-util.h" #include "plymouth-util.h" +#include "pretty-print.h" #include "process-util.h" #include "psi-util.h" #include "ratelimit.h" @@ -182,44 +183,6 @@ static void manager_watch_jobs_in_progress(Manager *m) { (void) sd_event_source_set_description(m->jobs_in_progress_event_source, "manager-jobs-in-progress"); } -#define CYLON_BUFFER_EXTRA (2*STRLEN(ANSI_RED) + STRLEN(ANSI_HIGHLIGHT_RED) + 2*STRLEN(ANSI_NORMAL)) - -static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { - char *p = buffer; - - assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); - assert(pos <= width+1); /* 0 or width+1 mean that the center light is behind the corner */ - - if (pos > 1) { - if (pos > 2) - p = mempset(p, ' ', pos-2); - if (log_get_show_color()) - p = stpcpy(p, ANSI_RED); - *p++ = '*'; - } - - if (pos > 0 && pos <= width) { - if (log_get_show_color()) - p = stpcpy(p, ANSI_HIGHLIGHT_RED); - *p++ = '*'; - } - - if (log_get_show_color()) - p = stpcpy(p, ANSI_NORMAL); - - if (pos < width) { - if (log_get_show_color()) - p = stpcpy(p, ANSI_RED); - *p++ = '*'; - if (pos < width-1) - p = mempset(p, ' ', width-1-pos); - if (log_get_show_color()) - p = stpcpy(p, ANSI_NORMAL); - } - - *p = '\0'; -} - static void manager_flip_auto_status(Manager *m, bool enable, const char *reason) { assert(m); diff --git a/src/shared/pretty-print.c b/src/shared/pretty-print.c index e31edb88b02..2833063d4c1 100644 --- a/src/shared/pretty-print.c +++ b/src/shared/pretty-print.c @@ -17,6 +17,42 @@ #include "strv.h" #include "terminal-util.h" +void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { + char *p = buffer; + + assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); + assert(pos <= width+1); /* 0 or width+1 mean that the center light is behind the corner */ + + if (pos > 1) { + if (pos > 2) + p = mempset(p, ' ', pos-2); + if (log_get_show_color()) + p = stpcpy(p, ANSI_RED); + *p++ = '*'; + } + + if (pos > 0 && pos <= width) { + if (log_get_show_color()) + p = stpcpy(p, ANSI_HIGHLIGHT_RED); + *p++ = '*'; + } + + if (log_get_show_color()) + p = stpcpy(p, ANSI_NORMAL); + + if (pos < width) { + if (log_get_show_color()) + p = stpcpy(p, ANSI_RED); + *p++ = '*'; + if (pos < width-1) + p = mempset(p, ' ', width-1-pos); + if (log_get_show_color()) + p = stpcpy(p, ANSI_NORMAL); + } + + *p = '\0'; +} + bool urlify_enabled(void) { #if ENABLE_URLIFY static int cached_urlify_enabled = -1; diff --git a/src/shared/pretty-print.h b/src/shared/pretty-print.h index b25684aaa65..c17e976580d 100644 --- a/src/shared/pretty-print.h +++ b/src/shared/pretty-print.h @@ -4,6 +4,10 @@ #include "glyph-util.h" #include "terminal-util.h" +#define CYLON_BUFFER_EXTRA (2*STRLEN(ANSI_RED) + STRLEN(ANSI_HIGHLIGHT_RED) + 2*STRLEN(ANSI_NORMAL)) + +void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos); + void print_separator(void); int file_url_from_path(const char *path, char **ret);