X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmenubar.c;h=8eab6afa4a55c57ca6ce2f2e959d845f6f9ad37c;hb=8afb64af7147481903a263cd94cd2f42ec9a8b67;hp=819dd0fb457f5baa3d86fa9adf2546b18fc34eb3;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git- diff --git a/src/menubar.c b/src/menubar.c index 819dd0f..8eab6af 100644 --- a/src/menubar.c +++ b/src/menubar.c @@ -102,8 +102,10 @@ current_frame_menubar (CONST struct frame* f) } Lisp_Object -menu_parse_submenu_keywords (Lisp_Object desc, struct gui_item* pgui_item) +menu_parse_submenu_keywords (Lisp_Object desc, Lisp_Object gui_item) { + struct Lisp_Gui_Item* pgui_item = XGUI_ITEM (gui_item); + /* Menu descriptor should be a list */ CHECK_CONS (desc); @@ -130,7 +132,7 @@ menu_parse_submenu_keywords (Lisp_Object desc, struct gui_item* pgui_item) desc = XCDR (desc); if (!NILP (desc)) CHECK_CONS (desc); - gui_item_add_keyval_pair (pgui_item, key, val); + gui_item_add_keyval_pair (gui_item, key, val, ERROR_ME); } /* Return the rest - supposed to be a list of items */ @@ -152,10 +154,10 @@ See also 'find-menu-item'. { Lisp_Object path_entry, submenu_desc, submenu; struct gcpro gcpro1; - struct gui_item gui_item; + Lisp_Object gui_item = allocate_gui_item (); + struct Lisp_Gui_Item* pgui_item = XGUI_ITEM (gui_item); - gui_item_init (&gui_item); - GCPRO_GUI_ITEM (&gui_item); + GCPRO1 (gui_item); EXTERNAL_LIST_LOOP (path_entry, path) { @@ -164,15 +166,15 @@ See also 'find-menu-item'. RETURN_UNGCPRO (Qnil); /* Parse this menu */ - desc = menu_parse_submenu_keywords (desc, &gui_item); + desc = menu_parse_submenu_keywords (desc, gui_item); /* Check that this (sub)menu is active */ - if (!gui_item_active_p (&gui_item)) + if (!gui_item_active_p (gui_item)) RETURN_UNGCPRO (Qnil); /* Apply :filter */ - if (!NILP (gui_item.filter)) - desc = call1 (gui_item.filter, desc); + if (!NILP (pgui_item->filter)) + desc = call1 (pgui_item->filter, desc); /* Find the next menu on the path inside this one */ EXTERNAL_LIST_LOOP (submenu_desc, desc) @@ -191,7 +193,7 @@ See also 'find-menu-item'. descend: /* Prepare for the next iteration */ - gui_item_init (&gui_item); + gui_item_init (gui_item); } /* We have successfully descended down the end of the path */