free_menu (MENU * menu) { if (!menu) RETURN(E_BAD_ARGUMENT); if ( menu->status & _POSTED ) RETURN(E_POSTED); if (menu->items) _nc_Disconnect_Items(menu); if ((menu->status & _MARK_ALLOCATED) && menu->mark) free(menu->mark); free(menu); RETURN(E_OK); }
set_menu_items (MENU * menu, ITEM ** items) { if (!menu || (items && !(*items))) RETURN(E_BAD_ARGUMENT); if ( menu->status & _POSTED ) RETURN(E_POSTED); if (menu->items) _nc_Disconnect_Items(menu); if (items) { if(!_nc_Connect_Items( menu, items )) RETURN(E_CONNECTED); } menu->items = items; RETURN(E_OK); }