From 0bbe0ad98c7b8ed5d081747ee3bdb2dbf7a1b848 Mon Sep 17 00:00:00 2001 From: okan Date: Sat, 28 Mar 2015 22:09:10 +0000 Subject: Reshuffle and slightly simplify menu_complete_path(), removing an allocation, for tab-completion; checked by Alexander Polakov as well. --- menu.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'menu.c') diff --git a/menu.c b/menu.c index f73bc5e..1026347 100644 --- a/menu.c +++ b/menu.c @@ -189,9 +189,7 @@ menu_complete_path(struct menu_ctx *mc) { struct menu *mi, *mr; struct menu_q menuq; - char *path = NULL; - path = xcalloc(1, sizeof(mr->text)); mr = xcalloc(1, sizeof(*mr)); TAILQ_INIT(&menuq); @@ -200,17 +198,15 @@ menu_complete_path(struct menu_ctx *mc) CWM_MENU_DUMMY, search_match_path_any, NULL)) != NULL) { mr->abort = mi->abort; mr->dummy = mi->dummy; - strlcpy(path, mi->text, sizeof(mi->text)); + if (mi->text[0] != '\0') + snprintf(mr->text, sizeof(mr->text), "%s \"%s\"", + mc->searchstr, mi->text); + else if (!mr->abort) + strlcpy(mr->text, mc->searchstr, sizeof(mr->text)); } menuq_clear(&menuq); - if (path[0] != '\0') - snprintf(mr->text, sizeof(mr->text), "%s \"%s\"", - mc->searchstr, path); - else if (!mr->abort) - strlcpy(mr->text, mc->searchstr, sizeof(mr->text)); - free(path); return(mr); } -- cgit 1.4.1