From: Zbigniew Jędrzejewski-Szmek Date: Sun, 9 Mar 2025 09:43:25 +0000 (+0100) Subject: basic/glyph-util: introduce optional_glyph() to wrap emoji_enabled() X-Git-Tag: v258-rc1~1073^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75d51d77da3c4cffcd5885d91c056c354500b5f6;p=thirdparty%2Fsystemd.git basic/glyph-util: introduce optional_glyph() to wrap emoji_enabled() --- diff --git a/src/basic/glyph-util.c b/src/basic/glyph-util.c index dd16dad9b67..2380f60606c 100644 --- a/src/basic/glyph-util.c +++ b/src/basic/glyph-util.c @@ -35,6 +35,7 @@ const char* glyph_full(Glyph code, bool force_utf) { static const char* const draw_table[2][_GLYPH_MAX] = { /* ASCII fallback */ [false] = { + [GLYPH_SPACE] = " ", [GLYPH_TREE_VERTICAL] = "| ", [GLYPH_TREE_BRANCH] = "|-", [GLYPH_TREE_RIGHT] = "`-", @@ -87,6 +88,9 @@ const char* glyph_full(Glyph code, bool force_utf) { /* UTF-8 */ [true] = { + /* This exists to allow more consistent handling of optional whitespace */ + [GLYPH_SPACE] = " ", + /* The following are multiple glyphs in both ASCII and in UNICODE */ [GLYPH_TREE_VERTICAL] = u8"│ ", [GLYPH_TREE_BRANCH] = u8"├─", diff --git a/src/basic/glyph-util.h b/src/basic/glyph-util.h index cb2fc78b07d..730f2695600 100644 --- a/src/basic/glyph-util.h +++ b/src/basic/glyph-util.h @@ -7,6 +7,7 @@ #include "macro.h" typedef enum Glyph { + GLYPH_SPACE, GLYPH_TREE_VERTICAL, GLYPH_TREE_BRANCH, GLYPH_TREE_RIGHT, @@ -70,6 +71,10 @@ static inline const char* glyph(Glyph code) { return glyph_full(code, false); } +static inline const char* optional_glyph(Glyph code) { + return emoji_enabled() ? glyph(code) : ""; +} + static inline const char* glyph_check_mark(bool b) { return b ? glyph(GLYPH_CHECK_MARK) : glyph(GLYPH_CROSS_MARK); } diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 51b4af47437..840b1b35845 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1274,8 +1274,8 @@ static int run(int argc, char *argv[]) { "%s%s/proc/ is not mounted. This is not a supported mode of operation. Please fix\n" "your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.\n" "Your mileage may vary.", - emoji_enabled() ? glyph(GLYPH_WARNING_SIGN) : "", - emoji_enabled() ? " " : ""); + optional_glyph(GLYPH_WARNING_SIGN), + optional_glyph(GLYPH_SPACE)); if (arg_action != ACTION_SYSTEMCTL && running_in_chroot() > 0) { if (!arg_quiet)