From: Lennart Poettering Date: Fri, 23 Nov 2018 16:18:48 +0000 (+0100) Subject: show-status: fold two bool flags function arguments into a flags X-Git-Tag: v240~205^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a885727a64714241cb646c0fe23e8a2a5af61dcc;p=thirdparty%2Fsystemd.git show-status: fold two bool flags function arguments into a flags parameter --- diff --git a/src/core/main.c b/src/core/main.c index 34794ccdd18..6d03b066847 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1371,12 +1371,12 @@ static int status_welcome(void) { "Failed to read os-release file, ignoring: %m"); if (log_get_show_color()) - return status_printf(NULL, false, false, + return status_printf(NULL, 0, "\nWelcome to \x1B[%sm%s\x1B[0m!\n", isempty(ansi_color) ? "1" : ansi_color, isempty(pretty_name) ? "Linux" : pretty_name); else - return status_printf(NULL, false, false, + return status_printf(NULL, 0, "\nWelcome to %s!\n", isempty(pretty_name) ? "Linux" : pretty_name); } diff --git a/src/core/manager.c b/src/core/manager.c index e2de1c84b91..5f11515b3d1 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4156,7 +4156,7 @@ void manager_status_printf(Manager *m, StatusType type, const char *status, cons return; va_start(ap, format); - status_vprintf(status, true, type == STATUS_TYPE_EPHEMERAL, format, ap); + status_vprintf(status, SHOW_STATUS_ELLIPSIZE|(type == STATUS_TYPE_EPHEMERAL ? SHOW_STATUS_EPHEMERAL : 0), format, ap); va_end(ap); } diff --git a/src/core/show-status.c b/src/core/show-status.c index d8d2317d38e..e8ac004903e 100644 --- a/src/core/show-status.c +++ b/src/core/show-status.c @@ -32,7 +32,7 @@ int parse_show_status(const char *v, ShowStatus *ret) { return 0; } -int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char *format, va_list ap) { +int status_vprintf(const char *status, ShowStatusFlags flags, const char *format, va_list ap) { static const char status_indent[] = " "; /* "[" STATUS "] " */ _cleanup_free_ char *s = NULL; _cleanup_close_ int fd = -1; @@ -57,7 +57,7 @@ int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char if (fd < 0) return fd; - if (ellipse) { + if (FLAGS_SET(flags, SHOW_STATUS_ELLIPSIZE)) { char *e; size_t emax, sl; int c; @@ -94,9 +94,9 @@ int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char iovec[n++] = IOVEC_MAKE_STRING(s); iovec[n++] = IOVEC_MAKE_STRING("\n"); - if (prev_ephemeral && !ephemeral) + if (prev_ephemeral && !FLAGS_SET(flags, SHOW_STATUS_EPHEMERAL)) iovec[n++] = IOVEC_MAKE_STRING(ANSI_ERASE_TO_END_OF_LINE); - prev_ephemeral = ephemeral; + prev_ephemeral = FLAGS_SET(flags, SHOW_STATUS_EPHEMERAL) ; if (writev(fd, iovec, n) < 0) return -errno; @@ -104,14 +104,14 @@ int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char return 0; } -int status_printf(const char *status, bool ellipse, bool ephemeral, const char *format, ...) { +int status_printf(const char *status, ShowStatusFlags flags, const char *format, ...) { va_list ap; int r; assert(format); va_start(ap, format); - r = status_vprintf(status, ellipse, ephemeral, format, ap); + r = status_vprintf(status, flags, format, ap); va_end(ap); return r; diff --git a/src/core/show-status.h b/src/core/show-status.h index ac590303c11..f574d92d846 100644 --- a/src/core/show-status.h +++ b/src/core/show-status.h @@ -16,9 +16,14 @@ typedef enum ShowStatus { _SHOW_STATUS_INVALID = -1, } ShowStatus; +typedef enum ShowStatusFlags { + SHOW_STATUS_ELLIPSIZE = 1 << 0, + SHOW_STATUS_EPHEMERAL = 1 << 1, +} ShowStatusFlags; + ShowStatus show_status_from_string(const char *v) _const_; const char* show_status_to_string(ShowStatus s) _pure_; int parse_show_status(const char *v, ShowStatus *ret); -int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char *format, va_list ap) _printf_(4,0); -int status_printf(const char *status, bool ellipse, bool ephemeral, const char *format, ...) _printf_(4,5); +int status_vprintf(const char *status, ShowStatusFlags flags, const char *format, va_list ap) _printf_(3,0); +int status_printf(const char *status, ShowStatusFlags flags, const char *format, ...) _printf_(3,4);