diff options
author | Wynn Wolf Arbor | 2020-03-18 19:46:51 +0100 |
---|---|---|
committer | Wolfgang Müller | 2021-04-27 12:28:35 +0200 |
commit | a0387a0fd66954e024c926655c866a3ab80e460f (patch) | |
tree | 0272f0158f5424cfcdbdccdabe3f31f4a29919a3 /menu.c | |
parent | 8dc8d620c2f5873408b34385d9ca763574655b13 (diff) | |
download | cwm-a0387a0fd66954e024c926655c866a3ab80e460f.tar.gz |
Remove path completion in the exec menu
There are a couple of issues I found with this functionality:
1) To my knowledge, it is undocumented and extremely specific.
2) Since this function would only complete a full path (by wrapping it
in quotes before passing it on), it is entirely useless when composing a
command that has more than one argument.
3) The snprintf call has no check for truncation, possibly leading to
the path not being quoted properly.
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 39 |
1 files changed, 0 insertions, 39 deletions
@@ -76,7 +76,6 @@ static void menu_draw(struct menu_ctx *, struct menu_q *, static void menu_draw_entry(struct menu_ctx *, struct menu_q *, int, int); static int menu_calc_entry(struct menu_ctx *, int, int); -static struct menu *menu_complete_path(struct menu_ctx *); static int menu_keycode(XKeyEvent *, enum ctltype *, char *); struct menu * @@ -189,34 +188,6 @@ out: } static struct menu * -menu_complete_path(struct menu_ctx *mc) -{ - struct screen_ctx *sc = mc->sc; - struct menu *mi, *mr; - struct menu_q menuq; - int mflags = (CWM_MENU_DUMMY); - - mr = xcalloc(1, sizeof(*mr)); - - TAILQ_INIT(&menuq); - - if ((mi = menu_filter(sc, &menuq, mc->searchstr, NULL, mflags, - search_match_path, search_print_text)) != NULL) { - mr->abort = mi->abort; - mr->dummy = mi->dummy; - 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); - - return mr; -} - -static struct menu * menu_handle_key(XEvent *e, struct menu_ctx *mc, struct menu_q *menuq, struct menu_q *resultq) { @@ -277,16 +248,6 @@ menu_handle_key(XEvent *e, struct menu_ctx *mc, struct menu_q *menuq, case CTL_TAB: if ((mi = TAILQ_FIRST(resultq)) != NULL) { /* - * - We are in exec_path menu mode - * - It is equal to the input - * We got a command, launch the file menu - */ - if ((mc->flags & CWM_MENU_FILE) && - (strncmp(mc->searchstr, mi->text, - strlen(mi->text))) == 0) - return menu_complete_path(mc); - - /* * Put common prefix of the results into searchstr */ (void)strlcpy(mc->searchstr, |