char *menustr[] = { "foo", "bar", "quux", "exit", nil }; Menu menu = { menustr }; Menuitem menu2i[] = { { 20, "aaa" }, { 21, "bbb" }, { 22, "ccc" }, { 23, "ddd" }, { 0, nil } }; Submenu menu2 = { menu2i }; Menuitem menu1i[] = { { 10, "foo" }, { 11, "bar" }, { 12, "quux", &menu2 }, { 13, "exit" }, { 0, nil } }; Submenu menu1 = { menu1i }; ... int sel = submenuhit(3, mctl, &menu1); print("menu: %d\n", sel); if(sel == 13) threadexitsall(nil);