Simplify read_menu_items

This commit is contained in:
adnano 2024-02-27 11:34:17 -05:00
parent e8782db9c8
commit 0db7efe232

16
menu.c
View file

@ -293,20 +293,22 @@ static void match_items(struct menu *menu) {
// Read menu items from standard input.
void read_menu_items(struct menu *menu) {
char buf[sizeof menu->input], *p;
struct item *item, **end;
char buf[sizeof menu->input];
for(end = &menu->items; fgets(buf, sizeof buf, stdin); *end = item, end = &item->next) {
if((p = strchr(buf, '\n'))) {
struct item **next = &menu->items;
while (fgets(buf, sizeof buf, stdin)) {
char *p = strchr(buf, '\n');
if (p) {
*p = '\0';
}
item = malloc(sizeof *item);
struct item *item = calloc(1, sizeof *item);
if (!item) {
return;
}
item->text = strdup(buf);
item->next = item->prev_match = item->next_match = NULL;
*next = item;
next = &item->next;
}
calc_widths(menu);