summaryrefslogtreecommitdiffstats
path: root/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/menu.c b/menu.c
index c17d10b1..16120bed 100644
--- a/menu.c
+++ b/menu.c
@@ -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);