From 282cc4b1b068884308cccec1d615640fbbe6d9f7 Mon Sep 17 00:00:00 2001 From: okan Date: Tue, 6 Dec 2016 21:54:10 +0000 Subject: Add search_print_text(), a default callback for mi->print in menu_filter(). While here, normalize the remaining search_print_* argument paramters. --- calmwm.h | 3 ++- kbfunc.c | 8 ++++---- menu.c | 10 +++------- search.c | 14 ++++++++++---- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/calmwm.h b/calmwm.h index 61079bc..d86408e 100644 --- a/calmwm.h +++ b/calmwm.h @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: calmwm.h,v 1.335 2016/12/01 20:28:19 okan Exp $ + * $OpenBSD: calmwm.h,v 1.336 2016/12/06 21:54:10 okan Exp $ */ #ifndef _CALMWM_H_ @@ -449,6 +449,7 @@ void search_match_text(struct menu_q *, struct menu_q *, void search_print_client(struct menu *, int); void search_print_cmd(struct menu *, int); void search_print_group(struct menu *, int); +void search_print_text(struct menu *, int); struct region_ctx *region_find(struct screen_ctx *, int, int); struct geom screen_apply_gap(struct screen_ctx *, struct geom); diff --git a/kbfunc.c b/kbfunc.c index 0a3d08a..f9b7456 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: kbfunc.c,v 1.141 2016/12/06 21:09:22 okan Exp $ + * $OpenBSD: kbfunc.c,v 1.142 2016/12/06 21:54:10 okan Exp $ */ #include @@ -451,7 +451,7 @@ kbfunc_menu_exec(void *ctx, union arg *arg, enum xev xev) if ((mi = menu_filter(sc, &menuq, label, NULL, (CWM_MENU_DUMMY | CWM_MENU_FILE), - search_match_exec, NULL)) != NULL) { + search_match_exec, search_print_text)) != NULL) { if (mi->text[0] == '\0') goto out; switch (cmd) { @@ -526,7 +526,7 @@ kbfunc_menu_ssh(void *ctx, union arg *arg, enum xev xev) (void)fclose(fp); menu: if ((mi = menu_filter(sc, &menuq, "ssh", NULL, (CWM_MENU_DUMMY), - search_match_text, NULL)) != NULL) { + search_match_text, search_print_text)) != NULL) { if (mi->text[0] == '\0') goto out; l = snprintf(path, sizeof(path), "%s -T '[ssh] %s' -e ssh %s", @@ -552,7 +552,7 @@ kbfunc_menu_client_label(void *ctx, union arg *arg, enum xev xev) /* dummy is set, so this will always return */ mi = menu_filter(cc->sc, &menuq, "label", cc->label, (CWM_MENU_DUMMY), - search_match_text, NULL); + search_match_text, search_print_text); if (!mi->abort) { free(cc->label); diff --git a/menu.c b/menu.c index c566304..1ea3ea7 100644 --- a/menu.c +++ b/menu.c @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: menu.c,v 1.99 2016/12/01 20:28:19 okan Exp $ + * $OpenBSD: menu.c,v 1.100 2016/12/06 21:54:10 okan Exp $ */ #include @@ -196,7 +196,7 @@ menu_complete_path(struct menu_ctx *mc) TAILQ_INIT(&menuq); if ((mi = menu_filter(sc, &menuq, mc->searchstr, NULL, - (CWM_MENU_DUMMY), search_match_path, NULL)) != NULL) { + (CWM_MENU_DUMMY), search_match_path, search_print_text)) != NULL) { mr->abort = mi->abort; mr->dummy = mi->dummy; if (mi->text[0] != '\0') @@ -366,11 +366,7 @@ menu_draw(struct menu_ctx *mc, struct menu_q *menuq, struct menu_q *resultq) } TAILQ_FOREACH(mi, resultq, resultentry) { - if (mc->print != NULL) - (*mc->print)(mi, mc->listing); - else - (void)snprintf(mi->print, sizeof(mi->print), - "%s", mi->text); + (*mc->print)(mi, mc->listing); XftTextExtentsUtf8(X_Dpy, sc->xftfont, (const FcChar8*)mi->print, diff --git a/search.c b/search.c index 80d0b1a..8c06f4d 100644 --- a/search.c +++ b/search.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: search.c,v 1.58 2016/12/01 20:28:19 okan Exp $ + * $OpenBSD: search.c,v 1.59 2016/12/06 21:54:10 okan Exp $ */ #include @@ -105,7 +105,13 @@ search_match_client(struct menu_q *menuq, struct menu_q *resultq, char *search) } void -search_print_cmd(struct menu *mi, int i) +search_print_text(struct menu *mi, int listing) +{ + (void)snprintf(mi->print, sizeof(mi->print), "%s", mi->text); +} + +void +search_print_cmd(struct menu *mi, int listing) { struct cmd_ctx *cmd = (struct cmd_ctx *)mi->ctx; @@ -113,7 +119,7 @@ search_print_cmd(struct menu *mi, int i) } void -search_print_group(struct menu *mi, int i) +search_print_group(struct menu *mi, int listing) { struct group_ctx *gc = (struct group_ctx *)mi->ctx; @@ -123,7 +129,7 @@ search_print_group(struct menu *mi, int i) } void -search_print_client(struct menu *mi, int list) +search_print_client(struct menu *mi, int listing) { struct client_ctx *cc = (struct client_ctx *)mi->ctx; char flag = ' '; -- cgit v1.2.3-2-gb3c3