diff options
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/menu.c b/menu.c index 7495eb1..526b37b 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> @@ -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; |