]> git.eshelyaron.com Git - emacs.git/commitdiff
(update_menu_bar): Change call to menu_bar_items.
authorRichard M. Stallman <rms@gnu.org>
Wed, 2 Mar 1994 04:04:54 +0000 (04:04 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 2 Mar 1994 04:04:54 +0000 (04:04 +0000)
(display_menu_bar): Use FRAME_MENU_BAR_LINES as vector.

src/xdisp.c

index d304d25378db14b27adba8b8a129eeb6c4184246..7a3a84e221e143357fba29982bcfda9a8d31c9b3 100644 (file)
@@ -969,7 +969,7 @@ update_menu_bar (window, just_this_one)
        {
          struct buffer *prev = current_buffer;
          current_buffer = XBUFFER (w->buffer);
-         FRAME_MENU_BAR_ITEMS (f) = menu_bar_items ();
+         FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
          current_buffer = prev;
 #ifdef USE_X_TOOLKIT
          set_frame_menubar (f);
@@ -2388,6 +2388,7 @@ display_menu_bar (w)
   register FRAME_PTR f = XFRAME (WINDOW_FRAME (w));
   int maxendcol = FRAME_WIDTH (f);
   int hpos = 0;
+  int i;
 
 #ifndef USE_X_TOOLKIT
   if (FRAME_MENU_BAR_LINES (f) <= 0)
@@ -2395,14 +2396,15 @@ display_menu_bar (w)
 
   get_display_line (f, vpos, 0);
 
-  for (tail = FRAME_MENU_BAR_ITEMS (f); CONSP (tail); tail = XCONS (tail)->cdr)
+  items = FRAME_MENU_BAR_ITEMS (f);
+  for (i = 0; i < XVECTOR (items)->size; i += 3)
     {
-      Lisp_Object string;
-
-      string = XCONS (XCONS (XCONS (tail)->car)->cdr)->car;
+      Lisp_Object pos, string;
+      string = XVECTOR (items)->contents[i + 1];
+      if (NILP (string))
+       break;
 
-      /* Record in each item its hpos.  */
-      XFASTINT (XCONS (XCONS (XCONS (tail)->car)->cdr)->cdr) = hpos;
+      XFASTINT (XVECTOR (items)->contents[i + 2]) = hpos;
 
       if (hpos < maxendcol)
        hpos = display_string (XWINDOW (FRAME_ROOT_WINDOW (f)), vpos,