You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
322 lines
17 KiB
322 lines
17 KiB
From 65038051854a48ed8c86bfcfdddfee9122fc2cab Mon Sep 17 00:00:00 2001 |
|
From: Lennart Poettering <lennart@poettering.net> |
|
Date: Wed, 16 Feb 2022 14:53:34 +0100 |
|
Subject: [PATCH] glyph-util: add new glyphs for up/down arrows |
|
|
|
(cherry picked from commit fc03e80c6b19521ecf4f3af06865b2054e685f9a) |
|
|
|
Related: #2118297 |
|
--- |
|
src/analyze/analyze-security.c | 2 +- |
|
src/basic/chase-symlinks.c | 2 +- |
|
src/basic/glyph-util.c | 10 ++++++++-- |
|
src/basic/glyph-util.h | 5 ++++- |
|
src/delta/delta.c | 20 ++++++++++---------- |
|
src/partition/repart.c | 4 ++-- |
|
src/portable/portable.c | 6 +++--- |
|
src/portable/portablectl.c | 4 ++-- |
|
src/shared/cgroup-show.c | 2 +- |
|
src/shared/install.c | 2 +- |
|
src/test/test-locale-util.c | 5 ++++- |
|
11 files changed, 37 insertions(+), 25 deletions(-) |
|
|
|
diff --git a/src/analyze/analyze-security.c b/src/analyze/analyze-security.c |
|
index e112922cbf..522d443f8a 100644 |
|
--- a/src/analyze/analyze-security.c |
|
+++ b/src/analyze/analyze-security.c |
|
@@ -1902,7 +1902,7 @@ static int assess(const SecurityInfo *info, |
|
name = info->id; |
|
|
|
printf("\n%s %sOverall exposure level for %s%s: %s%" PRIu64 ".%" PRIu64 " %s%s %s\n", |
|
- special_glyph(SPECIAL_GLYPH_ARROW), |
|
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), |
|
ansi_highlight(), |
|
name, |
|
ansi_normal(), |
|
diff --git a/src/basic/chase-symlinks.c b/src/basic/chase-symlinks.c |
|
index 344e7e1bb7..61f8b3351b 100644 |
|
--- a/src/basic/chase-symlinks.c |
|
+++ b/src/basic/chase-symlinks.c |
|
@@ -41,7 +41,7 @@ static int log_unsafe_transition(int a, int b, const char *path, unsigned flags) |
|
|
|
return log_warning_errno(SYNTHETIC_ERRNO(ENOLINK), |
|
"Detected unsafe path transition %s (owned by %s) %s %s (owned by %s) during canonicalization of %s.", |
|
- strna(n1), strna(user_a), special_glyph(SPECIAL_GLYPH_ARROW), strna(n2), strna(user_b), path); |
|
+ strna(n1), strna(user_a), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), strna(n2), strna(user_b), path); |
|
} |
|
|
|
static int log_autofs_mount_point(int fd, const char *path, unsigned flags) { |
|
diff --git a/src/basic/glyph-util.c b/src/basic/glyph-util.c |
|
index 8810738fc3..4583b7412c 100644 |
|
--- a/src/basic/glyph-util.c |
|
+++ b/src/basic/glyph-util.c |
|
@@ -39,6 +39,7 @@ const char *special_glyph(SpecialGlyph code) { |
|
[SPECIAL_GLYPH_TREE_BRANCH] = "|-", |
|
[SPECIAL_GLYPH_TREE_RIGHT] = "`-", |
|
[SPECIAL_GLYPH_TREE_SPACE] = " ", |
|
+ [SPECIAL_GLYPH_TREE_TOP] = ",-", |
|
[SPECIAL_GLYPH_TRIANGULAR_BULLET] = ">", |
|
[SPECIAL_GLYPH_BLACK_CIRCLE] = "*", |
|
[SPECIAL_GLYPH_WHITE_CIRCLE] = "*", |
|
@@ -51,7 +52,9 @@ const char *special_glyph(SpecialGlyph code) { |
|
[SPECIAL_GLYPH_LIGHT_SHADE] = "-", |
|
[SPECIAL_GLYPH_DARK_SHADE] = "X", |
|
[SPECIAL_GLYPH_SIGMA] = "S", |
|
- [SPECIAL_GLYPH_ARROW] = "->", |
|
+ [SPECIAL_GLYPH_ARROW_RIGHT] = "->", |
|
+ [SPECIAL_GLYPH_ARROW_UP] = "^", |
|
+ [SPECIAL_GLYPH_ARROW_DOWN] = "v", |
|
[SPECIAL_GLYPH_ELLIPSIS] = "...", |
|
[SPECIAL_GLYPH_EXTERNAL_LINK] = "[LNK]", |
|
[SPECIAL_GLYPH_ECSTATIC_SMILEY] = ":-]", |
|
@@ -75,6 +78,7 @@ const char *special_glyph(SpecialGlyph code) { |
|
[SPECIAL_GLYPH_TREE_BRANCH] = "\342\224\234\342\224\200", /* ├─ */ |
|
[SPECIAL_GLYPH_TREE_RIGHT] = "\342\224\224\342\224\200", /* └─ */ |
|
[SPECIAL_GLYPH_TREE_SPACE] = " ", /* */ |
|
+ [SPECIAL_GLYPH_TREE_TOP] = "\u250C\342\224\200", /* ┌─ */ |
|
|
|
/* Single glyphs in both cases */ |
|
[SPECIAL_GLYPH_TRIANGULAR_BULLET] = "\342\200\243", /* ‣ */ |
|
@@ -89,9 +93,11 @@ const char *special_glyph(SpecialGlyph code) { |
|
[SPECIAL_GLYPH_LIGHT_SHADE] = "\342\226\221", /* ░ */ |
|
[SPECIAL_GLYPH_DARK_SHADE] = "\342\226\223", /* ▒ */ |
|
[SPECIAL_GLYPH_SIGMA] = "\316\243", /* Σ */ |
|
+ [SPECIAL_GLYPH_ARROW_UP] = "\u2191", /* ↑ (actually called: UPWARDS ARROW) */ |
|
+ [SPECIAL_GLYPH_ARROW_DOWN] = "\u2193", /* ↓ (actually called: DOWNWARDS ARROW) */ |
|
|
|
/* Single glyph in Unicode, two in ASCII */ |
|
- [SPECIAL_GLYPH_ARROW] = "\342\206\222", /* → (actually called: RIGHTWARDS ARROW) */ |
|
+ [SPECIAL_GLYPH_ARROW_RIGHT] = "\342\206\222", /* → (actually called: RIGHTWARDS ARROW) */ |
|
|
|
/* Single glyph in Unicode, three in ASCII */ |
|
[SPECIAL_GLYPH_ELLIPSIS] = "\342\200\246", /* … (actually called: HORIZONTAL ELLIPSIS) */ |
|
diff --git a/src/basic/glyph-util.h b/src/basic/glyph-util.h |
|
index ddee210041..7e0a73842a 100644 |
|
--- a/src/basic/glyph-util.h |
|
+++ b/src/basic/glyph-util.h |
|
@@ -11,6 +11,7 @@ typedef enum SpecialGlyph { |
|
SPECIAL_GLYPH_TREE_BRANCH, |
|
SPECIAL_GLYPH_TREE_RIGHT, |
|
SPECIAL_GLYPH_TREE_SPACE, |
|
+ SPECIAL_GLYPH_TREE_TOP, |
|
SPECIAL_GLYPH_TRIANGULAR_BULLET, |
|
SPECIAL_GLYPH_BLACK_CIRCLE, |
|
SPECIAL_GLYPH_WHITE_CIRCLE, |
|
@@ -20,7 +21,9 @@ typedef enum SpecialGlyph { |
|
SPECIAL_GLYPH_MU, |
|
SPECIAL_GLYPH_CHECK_MARK, |
|
SPECIAL_GLYPH_CROSS_MARK, |
|
- SPECIAL_GLYPH_ARROW, |
|
+ SPECIAL_GLYPH_ARROW_RIGHT, |
|
+ SPECIAL_GLYPH_ARROW_UP, |
|
+ SPECIAL_GLYPH_ARROW_DOWN, |
|
SPECIAL_GLYPH_ELLIPSIS, |
|
SPECIAL_GLYPH_LIGHT_SHADE, |
|
SPECIAL_GLYPH_DARK_SHADE, |
|
diff --git a/src/delta/delta.c b/src/delta/delta.c |
|
index eafe1c05c4..aa5a546bce 100644 |
|
--- a/src/delta/delta.c |
|
+++ b/src/delta/delta.c |
|
@@ -91,7 +91,7 @@ static int notify_override_masked(const char *top, const char *bottom) { |
|
|
|
printf("%s%s%s %s %s %s\n", |
|
ansi_highlight_red(), "[MASKED]", ansi_normal(), |
|
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom); |
|
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom); |
|
return 1; |
|
} |
|
|
|
@@ -101,7 +101,7 @@ static int notify_override_equivalent(const char *top, const char *bottom) { |
|
|
|
printf("%s%s%s %s %s %s\n", |
|
ansi_highlight_green(), "[EQUIVALENT]", ansi_normal(), |
|
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom); |
|
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom); |
|
return 1; |
|
} |
|
|
|
@@ -111,7 +111,7 @@ static int notify_override_redirected(const char *top, const char *bottom) { |
|
|
|
printf("%s%s%s %s %s %s\n", |
|
ansi_highlight(), "[REDIRECTED]", ansi_normal(), |
|
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom); |
|
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom); |
|
return 1; |
|
} |
|
|
|
@@ -121,7 +121,7 @@ static int notify_override_overridden(const char *top, const char *bottom) { |
|
|
|
printf("%s%s%s %s %s %s\n", |
|
ansi_highlight(), "[OVERRIDDEN]", ansi_normal(), |
|
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom); |
|
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom); |
|
return 1; |
|
} |
|
|
|
@@ -131,7 +131,7 @@ static int notify_override_extended(const char *top, const char *bottom) { |
|
|
|
printf("%s%s%s %s %s %s\n", |
|
ansi_highlight(), "[EXTENDED]", ansi_normal(), |
|
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom); |
|
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom); |
|
return 1; |
|
} |
|
|
|
@@ -235,7 +235,7 @@ static int enumerate_dir_d( |
|
return -ENOMEM; |
|
d = p + strlen(toppath) + 1; |
|
|
|
- log_debug("Adding at top: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW), p); |
|
+ log_debug("Adding at top: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p); |
|
k = ordered_hashmap_put(top, d, p); |
|
if (k >= 0) { |
|
p = strdup(p); |
|
@@ -247,7 +247,7 @@ static int enumerate_dir_d( |
|
return k; |
|
} |
|
|
|
- log_debug("Adding at bottom: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW), p); |
|
+ log_debug("Adding at bottom: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p); |
|
free(ordered_hashmap_remove(bottom, d)); |
|
k = ordered_hashmap_put(bottom, d, p); |
|
if (k < 0) { |
|
@@ -271,7 +271,7 @@ static int enumerate_dir_d( |
|
return -ENOMEM; |
|
|
|
log_debug("Adding to drops: %s %s %s %s %s", |
|
- unit, special_glyph(SPECIAL_GLYPH_ARROW), basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p); |
|
+ unit, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p); |
|
k = ordered_hashmap_put(h, basename(p), p); |
|
if (k < 0) { |
|
free(p); |
|
@@ -347,7 +347,7 @@ static int enumerate_dir( |
|
if (!p) |
|
return -ENOMEM; |
|
|
|
- log_debug("Adding at top: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p); |
|
+ log_debug("Adding at top: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p); |
|
r = ordered_hashmap_put(top, basename(p), p); |
|
if (r >= 0) { |
|
p = strdup(p); |
|
@@ -356,7 +356,7 @@ static int enumerate_dir( |
|
} else if (r != -EEXIST) |
|
return r; |
|
|
|
- log_debug("Adding at bottom: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p); |
|
+ log_debug("Adding at bottom: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p); |
|
free(ordered_hashmap_remove(bottom, basename(p))); |
|
r = ordered_hashmap_put(bottom, basename(p), p); |
|
if (r < 0) |
|
diff --git a/src/partition/repart.c b/src/partition/repart.c |
|
index 67e379be55..9f95713130 100644 |
|
--- a/src/partition/repart.c |
|
+++ b/src/partition/repart.c |
|
@@ -1968,9 +1968,9 @@ static int format_size_change(uint64_t from, uint64_t to, char **ret) { |
|
if (from == to || to == UINT64_MAX) |
|
t = strdup(FORMAT_BYTES(from)); |
|
else |
|
- t = strjoin(FORMAT_BYTES(from), " ", special_glyph(SPECIAL_GLYPH_ARROW), " ", FORMAT_BYTES(to)); |
|
+ t = strjoin(FORMAT_BYTES(from), " ", special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), " ", FORMAT_BYTES(to)); |
|
} else if (to != UINT64_MAX) |
|
- t = strjoin(special_glyph(SPECIAL_GLYPH_ARROW), " ", FORMAT_BYTES(to)); |
|
+ t = strjoin(special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), " ", FORMAT_BYTES(to)); |
|
else { |
|
*ret = NULL; |
|
return 0; |
|
diff --git a/src/portable/portable.c b/src/portable/portable.c |
|
index 4c75dc0e0c..c1e253061f 100644 |
|
--- a/src/portable/portable.c |
|
+++ b/src/portable/portable.c |
|
@@ -1011,14 +1011,14 @@ static int install_profile_dropin( |
|
|
|
r = copy_file_atomic(from, dropin, 0644, 0, 0, COPY_REFLINK); |
|
if (r < 0) |
|
- return log_debug_errno(r, "Failed to copy %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW), dropin); |
|
+ return log_debug_errno(r, "Failed to copy %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dropin); |
|
|
|
(void) portable_changes_add(changes, n_changes, PORTABLE_COPY, dropin, from); |
|
|
|
} else { |
|
|
|
if (symlink(from, dropin) < 0) |
|
- return log_debug_errno(errno, "Failed to link %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW), dropin); |
|
+ return log_debug_errno(errno, "Failed to link %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dropin); |
|
|
|
(void) portable_changes_add(changes, n_changes, PORTABLE_SYMLINK, dropin, from); |
|
} |
|
@@ -1188,7 +1188,7 @@ static int install_image_symlink( |
|
(void) mkdir_parents(sl, 0755); |
|
|
|
if (symlink(image_path, sl) < 0) |
|
- return log_debug_errno(errno, "Failed to link %s %s %s: %m", image_path, special_glyph(SPECIAL_GLYPH_ARROW), sl); |
|
+ return log_debug_errno(errno, "Failed to link %s %s %s: %m", image_path, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), sl); |
|
|
|
(void) portable_changes_add(changes, n_changes, PORTABLE_SYMLINK, sl, image_path); |
|
return 0; |
|
diff --git a/src/portable/portablectl.c b/src/portable/portablectl.c |
|
index f4c57e14ae..585568acc1 100644 |
|
--- a/src/portable/portablectl.c |
|
+++ b/src/portable/portablectl.c |
|
@@ -433,12 +433,12 @@ static int print_changes(sd_bus_message *m) { |
|
break; |
|
|
|
if (streq(type, "symlink")) |
|
- log_info("Created symlink %s %s %s.", path, special_glyph(SPECIAL_GLYPH_ARROW), source); |
|
+ log_info("Created symlink %s %s %s.", path, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), source); |
|
else if (streq(type, "copy")) { |
|
if (isempty(source)) |
|
log_info("Copied %s.", path); |
|
else |
|
- log_info("Copied %s %s %s.", source, special_glyph(SPECIAL_GLYPH_ARROW), path); |
|
+ log_info("Copied %s %s %s.", source, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), path); |
|
} else if (streq(type, "unlink")) |
|
log_info("Removed %s.", path); |
|
else if (streq(type, "write")) |
|
diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c |
|
index 48dd4d8001..f18420c1b6 100644 |
|
--- a/src/shared/cgroup-show.c |
|
+++ b/src/shared/cgroup-show.c |
|
@@ -228,7 +228,7 @@ static int show_cgroup_name( |
|
printf("%s%s%s %s%s%s: %s\n", |
|
prefix, |
|
glyph == SPECIAL_GLYPH_TREE_BRANCH ? special_glyph(SPECIAL_GLYPH_TREE_VERTICAL) : " ", |
|
- special_glyph(SPECIAL_GLYPH_ARROW), |
|
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), |
|
ansi_blue(), x, ansi_normal(), |
|
y); |
|
} |
|
diff --git a/src/shared/install.c b/src/shared/install.c |
|
index eb5c3d5f91..4c7d0d6cad 100644 |
|
--- a/src/shared/install.c |
|
+++ b/src/shared/install.c |
|
@@ -335,7 +335,7 @@ void unit_file_dump_changes(int r, const char *verb, const UnitFileChange *chang |
|
if (!quiet) |
|
log_info("Created symlink %s %s %s.", |
|
changes[i].path, |
|
- special_glyph(SPECIAL_GLYPH_ARROW), |
|
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), |
|
changes[i].source); |
|
break; |
|
case UNIT_FILE_UNLINK: |
|
diff --git a/src/test/test-locale-util.c b/src/test/test-locale-util.c |
|
index 3243e3c567..6ec3f7f00b 100644 |
|
--- a/src/test/test-locale-util.c |
|
+++ b/src/test/test-locale-util.c |
|
@@ -91,13 +91,16 @@ TEST(dump_special_glyphs) { |
|
dump_glyph(SPECIAL_GLYPH_TREE_BRANCH); |
|
dump_glyph(SPECIAL_GLYPH_TREE_RIGHT); |
|
dump_glyph(SPECIAL_GLYPH_TREE_SPACE); |
|
+ dump_glyph(SPECIAL_GLYPH_TREE_TOP); |
|
dump_glyph(SPECIAL_GLYPH_TRIANGULAR_BULLET); |
|
dump_glyph(SPECIAL_GLYPH_BLACK_CIRCLE); |
|
dump_glyph(SPECIAL_GLYPH_WHITE_CIRCLE); |
|
dump_glyph(SPECIAL_GLYPH_MULTIPLICATION_SIGN); |
|
dump_glyph(SPECIAL_GLYPH_CIRCLE_ARROW); |
|
dump_glyph(SPECIAL_GLYPH_BULLET); |
|
- dump_glyph(SPECIAL_GLYPH_ARROW); |
|
+ dump_glyph(SPECIAL_GLYPH_ARROW_RIGHT); |
|
+ dump_glyph(SPECIAL_GLYPH_ARROW_UP); |
|
+ dump_glyph(SPECIAL_GLYPH_ARROW_DOWN); |
|
dump_glyph(SPECIAL_GLYPH_ELLIPSIS); |
|
dump_glyph(SPECIAL_GLYPH_MU); |
|
dump_glyph(SPECIAL_GLYPH_CHECK_MARK);
|
|
|