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.
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));
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;
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;
}
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;
}
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;
}
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;
}
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;
}
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);
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) {
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);
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);
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) {
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(),
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));
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;
}
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] = "->",
}
};
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);
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;
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)
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",
} 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);
} 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);