+ /* create the item */
+ curritem = allocitem(label, output, file);
+
+ /* put the item in the menu tree */
+ if (prevmenu == NULL) { /* there is no menu yet */
+ menu = allocmenu(NULL, curritem, level);
+ rootmenu = menu;
+ prevmenu = menu;
+ curritem->prev = NULL;
+ } else if (level < prevmenu->level) { /* item is continuation of a parent menu */
+ /* go up the menu tree until find the menu this item continues */
+ for (menu = prevmenu, i = level;
+ menu != NULL && i != prevmenu->level;
+ menu = menu->parent, i++)
+ ;
+ if (menu == NULL)
+ errx(1, "reached NULL menu");