(digest_single_submenu): Declare all args.
authorJason Rumney <jasonr@gnu.org>
Mon, 20 Jan 2003 20:18:13 +0000 (20:18 +0000)
committerJason Rumney <jasonr@gnu.org>
Mon, 20 Jan 2003 20:18:13 +0000 (20:18 +0000)
Sync with 2002-12-23  Richard M. Stallman  <rms@gnu.org>
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.

src/ChangeLog
src/w32menu.c

index c110217..5303b23 100644 (file)
@@ -1,3 +1,15 @@
+2003-01-20  David Ponce  <david@dponce.com>
+
+       * w32menu.c (digest_single_submenu): Declare all args.
+
+       Sync with 2002-12-23  Richard M. Stallman  <rms@gnu.org>
+       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.
+
 2003-01-20  Steven Tamm  <steventamm@mac.com>
 
        * macterm.c (XTread_socket): Checks for valid, visible window
index e573986..632685c 100644 (file)
@@ -1163,7 +1163,13 @@ parse_single_submenu (item_key, item_name, maps)
                           Qnil, Qnil, Qnil, Qnil);
        }
       else
-       single_keymap_panes (mapvec[i], item_name, item_key, 0, 10);
+       {
+         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,7 +1182,7 @@ parse_single_submenu (item_key, item_name, maps)
 
 static widget_value *
 digest_single_submenu (start, end, top_level_items)
-     int start, end;
+     int start, end, top_level_items;
 {
   widget_value *wv, *prev_wv, *save_wv, *first_wv;
   int i;
@@ -1195,10 +1201,10 @@ digest_single_submenu (start, end, top_level_items)
   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.  */
+  /* 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,7 +1366,7 @@ set_frame_menubar (f, first_time, deep_p)
   widget_value *wv, *first_wv, *prev_wv = 0;
   int i, last_i;
   int *submenu_start, *submenu_end;
-  int *submenu_top_level_items;
+  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,6 +1433,7 @@ set_frame_menubar (f, first_time, deep_p)
       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,6 +1454,7 @@ set_frame_menubar (f, first_time, deep_p)
          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,6 +1474,7 @@ set_frame_menubar (f, first_time, deep_p)
 
       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)