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.
This commit is contained in:
parent
b91a3b02f3
commit
6b01f1d391
|
@ -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));
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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] = "->",
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue