[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
xmenu.c/w32menu.c sync patch
From: |
David PONCE |
Subject: |
xmenu.c/w32menu.c sync patch |
Date: |
Mon, 20 Jan 2003 12:32:17 +0100 (MET) |
Hi,
I submit you the following patch to w32menu.c to sync it with xmenu.c.
Here is the change log:
* w32menu.c (digest_single_submenu): Declare all args.
Sync with 2002-12-23 Richard M. Stallman <address@hidden>
changes in xmenu.c:
(parse_single_submenu): Use individual keymap's prompt
string as pane name, if there is one.
(set_frame_menubar): Save menu_items_n_panes from each call to
parse_single_submenu and use it when calling digest_single_submenu.
Maybe it could help.
David
Index: w32menu.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/w32menu.c,v
retrieving revision 1.61
diff -c -r1.61 w32menu.c
*** w32menu.c 18 Dec 2002 06:16:28 -0000 1.61
--- w32menu.c 20 Jan 2003 11:20:37 -0000
***************
*** 1163,1169 ****
Qnil, Qnil, Qnil, Qnil);
}
else
! single_keymap_panes (mapvec[i], item_name, item_key, 0, 10);
}
return top_level_items;
--- 1163,1175 ----
Qnil, Qnil, Qnil, Qnil);
}
else
! {
! Lisp_Object prompt;
! prompt = Fkeymap_prompt (mapvec[i]);
! single_keymap_panes (mapvec[i],
! !NILP (prompt) ? prompt : item_name,
! item_key, 0, 10);
! }
}
return top_level_items;
***************
*** 1176,1182 ****
static widget_value *
digest_single_submenu (start, end, top_level_items)
! int start, end;
{
widget_value *wv, *prev_wv, *save_wv, *first_wv;
int i;
--- 1182,1188 ----
static widget_value *
digest_single_submenu (start, end, top_level_items)
! int start, end, top_level_items;
{
widget_value *wv, *prev_wv, *save_wv, *first_wv;
int i;
***************
*** 1195,1204 ****
save_wv = 0;
prev_wv = 0;
! /* Loop over all panes and items made during this call
! and construct a tree of widget_value objects.
! Ignore the panes and items made by previous calls to
! single_submenu, even though those are also in menu_items. */
i = start;
while (i < end)
{
--- 1201,1210 ----
save_wv = 0;
prev_wv = 0;
! /* Loop over all panes and items made by the preceding call
! to parse_single_submenu and construct a tree of widget_value objects.
! Ignore the panes and items used by previous calls to
! digest_single_submenu, even though those are also in menu_items. */
i = start;
while (i < end)
{
***************
*** 1360,1366 ****
widget_value *wv, *first_wv, *prev_wv = 0;
int i, last_i;
int *submenu_start, *submenu_end;
! int *submenu_top_level_items;
/* We must not change the menubar when actually in use. */
if (f->output_data.w32->menubar_active)
--- 1366,1372 ----
widget_value *wv, *first_wv, *prev_wv = 0;
int i, last_i;
int *submenu_start, *submenu_end;
! int *submenu_top_level_items, *submenu_n_panes;
/* We must not change the menubar when actually in use. */
if (f->output_data.w32->menubar_active)
***************
*** 1427,1432 ****
--- 1433,1439 ----
menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0;
submenu_start = (int *) alloca (XVECTOR (items)->size * sizeof (int *));
submenu_end = (int *) alloca (XVECTOR (items)->size * sizeof (int *));
+ submenu_n_panes = (int *) alloca (XVECTOR (items)->size * sizeof (int));
submenu_top_level_items
= (int *) alloca (XVECTOR (items)->size * sizeof (int *));
init_menu_items ();
***************
*** 1447,1452 ****
--- 1454,1460 ----
menu_items_n_panes = 0;
submenu_top_level_items[i]
= parse_single_submenu (key, string, maps);
+ submenu_n_panes[i] = menu_items_n_panes;
submenu_end[i] = menu_items_used;
}
***************
*** 1466,1471 ****
--- 1474,1480 ----
for (i = 0; i < last_i; i += 4)
{
+ menu_items_n_panes = submenu_n_panes[i];
wv = digest_single_submenu (submenu_start[i], submenu_end[i],
submenu_top_level_items[i]);
if (prev_wv)
- xmenu.c/w32menu.c sync patch,
David PONCE <=