summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-04-23 19:05:46 +0200
committerLennart Poettering <lennart@poettering.net>2014-04-23 19:06:39 +0200
commit6b01f1d3911bd7c7eadbb8a3b4375bd3ac05c98f (patch)
treeaa572a33491cc0b57a7c04377c4def14408df3b4 /src
parentb91a3b02f3be899dd8a2ae22df5be8de78f5a175 (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.c2
-rw-r--r--src/delta/delta.c24
-rw-r--r--src/libsystemd/sd-bus/bus-dump.c2
-rw-r--r--src/shared/cgroup-show.c12
-rw-r--r--src/shared/util.c16
-rw-r--r--src/shared/util.h4
-rw-r--r--src/systemctl/systemctl.c12
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);