wmenu.c (670B)
1 #define _POSIX_C_SOURCE 200809L 2 3 #include <stdio.h> 4 #include <string.h> 5 6 #include "menu.h" 7 #include "wayland.h" 8 9 static void read_items(struct menu *menu) { 10 char buf[sizeof menu->input]; 11 while (fgets(buf, sizeof buf, stdin)) { 12 char *p = strchr(buf, '\n'); 13 if (p) { 14 *p = '\0'; 15 } 16 menu_add_item(menu, strdup(buf)); 17 } 18 } 19 20 static void print_item(struct menu *menu, char *text, bool exit) { 21 puts(text); 22 fflush(stdout); 23 if (exit) { 24 menu->exit = true; 25 } 26 } 27 28 int main(int argc, char *argv[]) { 29 struct menu *menu = menu_create(print_item); 30 menu_getopts(menu, argc, argv); 31 read_items(menu); 32 int status = menu_run(menu); 33 menu_destroy(menu); 34 return status; 35 }