emacs-devel
[Top][All Lists]
Advanced

[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)







reply via email to

[Prev in Thread] Current Thread [Next in Thread]