(window, how, menu_list)
| 805 | } |
| 806 | |
| 807 | int |
| 808 | Gem_select_menu(window, how, menu_list) |
| 809 | winid window; |
| 810 | int how; |
| 811 | menu_item **menu_list; |
| 812 | { |
| 813 | Gem_menu_item *Gmit; |
| 814 | menu_item *mi; |
| 815 | int n; |
| 816 | |
| 817 | if (window == WIN_ERR || mar_hol_win_type(window) != NHW_MENU) |
| 818 | panic(winpanicstr, window); |
| 819 | |
| 820 | *menu_list = (menu_item *) 0; |
| 821 | mar_set_menu_type(how); |
| 822 | Gem_display_nhwindow(window, TRUE); |
| 823 | |
| 824 | for (n = 0, Gmit = mar_hol_inv(); Gmit; Gmit = Gmit->Gmi_next) |
| 825 | if (Gmit->Gmi_selected) |
| 826 | n++; |
| 827 | |
| 828 | if (n > 0) { |
| 829 | *menu_list = (menu_item *) alloc(n * sizeof(menu_item)); |
| 830 | for (mi = *menu_list, Gmit = mar_hol_inv(); Gmit; |
| 831 | Gmit = Gmit->Gmi_next) |
| 832 | if (Gmit->Gmi_selected) { |
| 833 | mi->item = (anything)(genericptr_t) Gmit->Gmi_identifier; |
| 834 | mi->count = Gmit->Gmi_count; |
| 835 | mi++; |
| 836 | } |
| 837 | } |
| 838 | |
| 839 | return n; |
| 840 | } |
| 841 | |
| 842 | void |
| 843 | Gem_update_inventory() |
no test coverage detected