summary refs log tree commit diff
path: root/menu.c
diff options
context:
space:
mode:
authorokan <okan>2014-01-21 15:42:44 +0000
committerokan <okan>2014-01-21 15:42:44 +0000
commit371902b3c9fc6c7419f8134e96d67c8735726ff2 (patch)
tree4963c37a48000819c291dabede7d429572398352 /menu.c
parent86b149ad2537061b8af6a51376835c1e1f1cc4ec (diff)
parentac3162439ad826026b499363b445e8c533313ff2 (diff)
downloadcwm-371902b3c9fc6c7419f8134e96d67c8735726ff2.tar.gz
cwm-371902b3c9fc6c7419f8134e96d67c8735726ff2.tar.xz
cwm-371902b3c9fc6c7419f8134e96d67c8735726ff2.zip
cvsimport
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/menu.c b/menu.c
index 7e3cb7b..fc90e35 100644
--- a/menu.c
+++ b/menu.c
@@ -25,6 +25,7 @@
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
+#include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -77,8 +78,8 @@ static struct menu 	*menu_complete_path(struct menu_ctx *);
 static int		 menu_keycode(XKeyEvent *, enum ctltype *, char *);
 
 struct menu *
-menu_filter(struct screen_ctx *sc, struct menu_q *menuq, char *prompt,
-    char *initial, int flags,
+menu_filter(struct screen_ctx *sc, struct menu_q *menuq, const char *prompt,
+    const char *initial, int flags,
     void (*match)(struct menu_q *, struct menu_q *, char *),
     void (*print)(struct menu *, int))
 {
@@ -605,6 +606,22 @@ menu_keycode(XKeyEvent *ev, enum ctltype *ctl, char *chr)
 }
 
 void
+menuq_add(struct menu_q *mq, void *ctx, const char *fmt, ...)
+{
+	va_list		 ap;
+	struct menu	*mi;
+
+	mi = xcalloc(1, sizeof(*mi));
+	mi->ctx = ctx;
+
+	va_start(ap, fmt);
+	(void)vsnprintf(mi->text, sizeof(mi->text), fmt, ap);
+	va_end(ap);
+
+	TAILQ_INSERT_TAIL(mq, mi, entry);
+}
+
+void
 menuq_clear(struct menu_q *mq)
 {
 	struct menu	*mi;