Trim menu item text correctly, GitHub issue 3197.

This commit is contained in:
nicm 2022-05-31 10:22:42 +00:00
parent 58c8ea1209
commit 86a184b288

14
menu.c
View File

@ -56,7 +56,7 @@ menu_add_item(struct menu *menu, const struct menu_item *item,
{
struct menu_item *new_item;
const char *key = NULL, *cmd, *suffix = "";
char *s, *name;
char *s, *trimmed, *name;
u_int width, max_width;
int line;
size_t keylen, slen;
@ -103,11 +103,13 @@ menu_add_item(struct menu *menu, const struct menu_item *item,
max_width--;
suffix = ">";
}
if (key != NULL)
xasprintf(&name, "%.*s%s#[default] #[align=right](%s)",
(int)max_width, s, suffix, key);
else
xasprintf(&name, "%.*s%s", (int)max_width, s, suffix);
trimmed = format_trim_right(s, max_width);
if (key != NULL) {
xasprintf(&name, "%s%s#[default] #[align=right](%s)",
trimmed, suffix, key);
} else
xasprintf(&name, "%s%s", trimmed, suffix);
free(trimmed);
new_item->name = name;
free(s);