diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-04-23 19:05:46 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-04-23 19:06:39 +0200 |
commit | 6b01f1d3911bd7c7eadbb8a3b4375bd3ac05c98f (patch) | |
tree | aa572a33491cc0b57a7c04377c4def14408df3b4 /src | |
parent | b91a3b02f3be899dd8a2ae22df5be8de78f5a175 (diff) |
delta: draw arrows with draw_special_char()
Let's unify generation of unicode chars at one place.
Also, don't add an extra space into chars we print, except for the tree
chars where this is really necessary.
Diffstat (limited to 'src')
-rw-r--r-- | src/analyze/analyze.c | 2 | ||||
-rw-r--r-- | src/delta/delta.c | 24 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/bus-dump.c | 2 | ||||
-rw-r--r-- | src/shared/cgroup-show.c | 12 | ||||
-rw-r--r-- | src/shared/util.c | 16 | ||||
-rw-r--r-- | src/shared/util.h | 4 | ||||
-rw-r--r-- | src/systemctl/systemctl.c | 12 |
7 files changed, 38 insertions, 34 deletions
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 3d2d08f667..ba236d92bc 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -645,7 +645,7 @@ static int list_dependencies_print(const char *name, unsigned int level, unsigne char ts[FORMAT_TIMESPAN_MAX], ts2[FORMAT_TIMESPAN_MAX]; for (i = level; i != 0; i--) - printf("%s", draw_special_char(branches & (1 << (i-1)) ? DRAW_TREE_VERT : DRAW_TREE_SPACE)); + printf("%s", draw_special_char(branches & (1 << (i-1)) ? DRAW_TREE_VERTICAL : DRAW_TREE_SPACE)); printf("%s", draw_special_char(last ? DRAW_TREE_RIGHT : DRAW_TREE_BRANCH)); diff --git a/src/delta/delta.c b/src/delta/delta.c index 8fc37c55f3..96a9fa5ee1 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -85,10 +85,6 @@ static void pager_open_if_enabled(void) { pager_open(false); } -static inline const char* arrow(void) { - return is_locale_utf8() ? "→" : "->"; -} - static int equivalent(const char *a, const char *b) { _cleanup_free_ char *x = NULL, *y = NULL; @@ -109,7 +105,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_highlight_off(), - top, arrow(), bottom); + top, draw_special_char(DRAW_ARROW), bottom); return 1; } @@ -119,7 +115,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_highlight_off(), - top, arrow(), bottom); + top, draw_special_char(DRAW_ARROW), bottom); return 1; } @@ -129,7 +125,7 @@ static int notify_override_redirected(const char *top, const char *bottom) { printf("%s%s%s %s %s %s\n", ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), - top, arrow(), bottom); + top, draw_special_char(DRAW_ARROW), bottom); return 1; } @@ -139,7 +135,7 @@ static int notify_override_overridden(const char *top, const char *bottom) { printf("%s%s%s %s %s %s\n", ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), - top, arrow(), bottom); + top, draw_special_char(DRAW_ARROW), bottom); return 1; } @@ -149,7 +145,7 @@ static int notify_override_extended(const char *top, const char *bottom) { printf("%s%s%s %s %s %s\n", ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), - top, arrow(), bottom); + top, draw_special_char(DRAW_ARROW), bottom); return 1; } @@ -250,7 +246,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const return -ENOMEM; d = p + strlen(toppath) + 1; - log_debug("Adding at top: %s %s %s", d, arrow(), p); + log_debug("Adding at top: %s %s %s", d, draw_special_char(DRAW_ARROW), p); k = hashmap_put(top, d, p); if (k >= 0) { p = strdup(p); @@ -262,7 +258,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const return k; } - log_debug("Adding at bottom: %s %s %s", d, arrow(), p); + log_debug("Adding at bottom: %s %s %s", d, draw_special_char(DRAW_ARROW), p); free(hashmap_remove(bottom, d)); k = hashmap_put(bottom, d, p); if (k < 0) { @@ -286,7 +282,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const return -ENOMEM; log_debug("Adding to drops: %s %s %s %s %s", - unit, arrow(), basename(p), arrow(), p); + unit, draw_special_char(DRAW_ARROW), basename(p), draw_special_char(DRAW_ARROW), p); k = hashmap_put(h, basename(p), p); if (k < 0) { free(p); @@ -338,7 +334,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch if (!p) return -ENOMEM; - log_debug("Adding at top: %s %s %s", basename(p), arrow(), p); + log_debug("Adding at top: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p); k = hashmap_put(top, basename(p), p); if (k >= 0) { p = strdup(p); @@ -349,7 +345,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch return k; } - log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p); + log_debug("Adding at bottom: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p); free(hashmap_remove(bottom, basename(p))); k = hashmap_put(bottom, basename(p), p); if (k < 0) { diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c index ea81644d46..6f4ce0c42f 100644 --- a/src/libsystemd/sd-bus/bus-dump.c +++ b/src/libsystemd/sd-bus/bus-dump.c @@ -54,7 +54,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { if (with_header) { fprintf(f, - "%s%s%sType=%s%s%s Endian=%c Flags=%u Version=%u Priority=%lli", + "%s%s%s Type=%s%s%s Endian=%c Flags=%u Version=%u Priority=%lli", m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() : m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() : m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(), diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index ee14cee4ed..c862ee91f6 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -78,10 +78,12 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi get_process_cmdline(pids[i], n_columns, true, &t); - printf("%s%s%*lu %s\n", - prefix, - draw_special_char(extra ? DRAW_TRIANGULAR_BULLET : - ((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT)), + if (extra) + printf("%s%s ", prefix, draw_special_char(DRAW_TRIANGULAR_BULLET)); + else + printf("%s%s", prefix, draw_special_char(((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT))); + + printf("%*lu %s\n", pid_width, (unsigned long) pids[i], strna(t)); @@ -181,7 +183,7 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns basename(last)); if (!p1) { - p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERT)); + p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERTICAL)); if (!p1) return -ENOMEM; } diff --git a/src/shared/util.c b/src/shared/util.c index b6285abb29..5bf9c9fabd 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5444,21 +5444,25 @@ out: const char *draw_special_char(DrawSpecialChar ch) { static const char *draw_table[2][_DRAW_SPECIAL_CHAR_MAX] = { + /* UTF-8 */ { - [DRAW_TREE_VERT] = "\342\224\202 ", /* │ */ + [DRAW_TREE_VERTICAL] = "\342\224\202 ", /* │ */ [DRAW_TREE_BRANCH] = "\342\224\234\342\224\200", /* ├─ */ [DRAW_TREE_RIGHT] = "\342\224\224\342\224\200", /* └─ */ [DRAW_TREE_SPACE] = " ", /* */ - [DRAW_TRIANGULAR_BULLET] = "\342\200\243 ", /* ‣ */ - [DRAW_BLACK_CIRCLE] = "\342\227\217 ", /* ● */ + [DRAW_TRIANGULAR_BULLET] = "\342\200\243", /* ‣ */ + [DRAW_BLACK_CIRCLE] = "\342\227\217", /* ● */ + [DRAW_ARROW] = "\342\206\222", /* → */ }, + /* ASCII fallback */ { - [DRAW_TREE_VERT] = "| ", + [DRAW_TREE_VERTICAL] = "| ", [DRAW_TREE_BRANCH] = "|-", [DRAW_TREE_RIGHT] = "`-", [DRAW_TREE_SPACE] = " ", - [DRAW_TRIANGULAR_BULLET] = "> ", - [DRAW_BLACK_CIRCLE] = "* ", + [DRAW_TRIANGULAR_BULLET] = ">", + [DRAW_BLACK_CIRCLE] = "*", + [DRAW_ARROW] = "->", } }; diff --git a/src/shared/util.h b/src/shared/util.h index 5b060ef74f..d584a65979 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -681,14 +681,16 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, bool is_locale_utf8(void); typedef enum DrawSpecialChar { - DRAW_TREE_VERT, + DRAW_TREE_VERTICAL, DRAW_TREE_BRANCH, DRAW_TREE_RIGHT, DRAW_TREE_SPACE, DRAW_TRIANGULAR_BULLET, DRAW_BLACK_CIRCLE, + DRAW_ARROW, _DRAW_SPECIAL_CHAR_MAX } DrawSpecialChar; + const char *draw_special_char(DrawSpecialChar ch); char *strreplace(const char *text, const char *old_string, const char *new_string); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 1717c1929e..7bc8ece042 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1430,7 +1430,7 @@ static int list_dependencies_print(const char *name, int level, unsigned int bra printf("%s...\n",max_len % 2 ? "" : " "); return 0; } - printf("%s", draw_special_char(branches & (1 << i) ? DRAW_TREE_VERT : DRAW_TREE_SPACE)); + printf("%s", draw_special_char(branches & (1 << i) ? DRAW_TREE_VERTICAL : DRAW_TREE_SPACE)); } len += 2; @@ -1598,9 +1598,9 @@ static int list_dependencies_one( state = check_one_unit(bus, *c, "activating\0active\0reloading\0", true); if (state > 0) - printf("%s%s%s", ansi_highlight_green(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off()); + printf("%s%s%s ", ansi_highlight_green(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off()); else - printf("%s%s%s", ansi_highlight_red(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off()); + printf("%s%s%s ", ansi_highlight_red(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off()); r = list_dependencies_print(*c, level, branches, c[1] == NULL); if (r < 0) @@ -1833,7 +1833,7 @@ static void output_machines_list(struct machine_info *machine_infos, unsigned n) on_failed = off_failed = ""; if (circle_len > 0) - printf("%s%s%s", on_state, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : " ", off_state); + printf("%s%s%s ", on_state, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : " ", off_state); if (m->is_host) printf("%-*s (host) %s%-*s%s %s%*u%s %*u\n", @@ -3234,7 +3234,7 @@ static void print_status_info( } else active_on = active_off = ""; - printf("%s%s%s%s", active_on, draw_special_char(DRAW_BLACK_CIRCLE), active_off, strna(i->id)); + printf("%s%s%s %s", active_on, draw_special_char(DRAW_BLACK_CIRCLE), active_off, strna(i->id)); if (i->description && !streq_ptr(i->id, i->description)) printf(" - %s", i->description); @@ -4338,7 +4338,7 @@ static int show_system_status(sd_bus *bus) { } else on = off = ""; - printf("%s%s%s%s\n", on, draw_special_char(DRAW_BLACK_CIRCLE), off, arg_host ? arg_host : hn); + printf("%s%s%s %s\n", on, draw_special_char(DRAW_BLACK_CIRCLE), off, arg_host ? arg_host : hn); printf(" State: %s%s%s\n", on, strna(mi.state), off); |