summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2016-12-06 21:54:10 +0000
committerokan <okan>2016-12-06 21:54:10 +0000
commita7f2ab7497f32c6ed740b610fc8120f934a4893a (patch)
tree7f71217651d8630e374e65740df3ff58803a57fa
parent89e4e7fb140a65726a9ce55179535b782e4b2d57 (diff)
downloadcwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.tar.gz
cwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.tar.xz
cwm-a7f2ab7497f32c6ed740b610fc8120f934a4893a.zip
Add search_print_text(), a default callback for mi->print in menu_filter(). While
here, normalize the remaining search_print_* argument paramters.
-rw-r--r--calmwm.h1
-rw-r--r--kbfunc.c6
-rw-r--r--menu.c8
-rw-r--r--search.c12
4 files changed, 15 insertions, 12 deletions
diff --git a/calmwm.h b/calmwm.h
index 957bfea..2912662 100644
--- a/calmwm.h
+++ b/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 3292164..134a8e7 100644
--- a/kbfunc.c
+++ b/kbfunc.c
@@ -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 fe63741..cb33530 100644
--- a/menu.c
+++ b/menu.c
@@ -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 ae7ee0f..f244e7f 100644
--- a/search.c
+++ b/search.c
@@ -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 = ' ';