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/shared | |
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/shared')
-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 |
3 files changed, 20 insertions, 12 deletions
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); |