"Nico Francois" <nico.francois@scala.nl> writes:

> Don't know if this will make it in time for the next mini-release, 
> but I've made two more fixes based on comments from one of my 
> colleagues:
> 
> 1) The following (while not documented) seems to be TRUE:
> 
>    - If a PANE is of the form ("" ITEM1 ITEM2 ...), then ITEM1,      
>      ITEM2, etc., are placed in the main panel instead of a subpanel.
> 
>    I've been able to "fix" this for old-style x-popup-menu calls as I'm 
>    not sure this needs to be fixed for (list of) keymap menus and if so 
>    how to do it there :)

Is this in the manual somewhere, or is it simply an undocumented
feature?  Is this only true in old-style menus?

> 2) The following is documented in x-popup-menu:
> 
>    - Each ITEM is normally a cons cell (STRING . VALUE);  but a string can 
>      appear as an item--that makes a nonselectable line  in the menu.
> 
>    This did not work in NT Emacs.  The reason was simple: list_of_menus()
>    was calling add_menu_items() with the wrong argument ('enable' is a
>    UINT, not a lisp object).  Isn't it high time Emacs source started
>    to use real function prototypes so bugs like these are caught at  
>    compile time ? ;-)

Thanks, you are correct.  This bug is a holdover from the previous
version.  (Not that that excuses me for missing it!)  Here is a patch
on top of my previously posted patch for this.  (Based on what Nico
wrote, with a Changelog entry.)


*** c:/users/md5i/tmp/emacs-19.34/src/w32menu.c.orig.2	Wed May 07 14:21:58 1997
--- c:/users/md5i/tmp/emacs-19.34/src/w32menu.c	Wed May 07 14:26:04 1997
***************
*** 692,698 ****
      {
        item = Fcar (tail);
        if (STRINGP (item))
! 	add_menu_item (lpmm, hmenu, item, Qnil, Qnil, Qnil);
        else if (NILP (item))
  	add_left_right_boundary ();
        else
--- 692,698 ----
      {
        item = Fcar (tail);
        if (STRINGP (item))
! 	add_menu_item (lpmm, hmenu, item, 0, Qnil, Qnil);
        else if (NILP (item))
  	add_left_right_boundary ();
        else
***************
*** 700,706 ****
  	  CHECK_CONS (item, 0);
  	  item1 = Fcar (item);
  	  CHECK_STRING (item1, 1);
! 	  add_menu_item (lpmm, hmenu, item1, Qt, Fcdr (item), Qnil);
  	}
      }
  
--- 700,706 ----
  	  CHECK_CONS (item, 0);
  	  item1 = Fcar (item);
  	  CHECK_STRING (item1, 1);
! 	  add_menu_item (lpmm, hmenu, item1, 1, Fcdr (item), Qnil);
  	}
      }
  
*** c:/users/md5i/tmp/emacs-19.34/src/ChangeLog~	Tue May 06 15:15:15 1997
--- c:/users/md5i/tmp/emacs-19.34/src/ChangeLog	Wed May 07 14:39:45 1997
***************
*** 1,3 ****
--- 1,8 ----
+ Wed May 07 14:37:29 1997  Nico Francois  <nico.francois@scala.nl>
+ 
+ 	* w32menu.c (list_of_items): use 1 and 0 instead of Qt and Qnil
+ 	for enable in add_menu_item
+ 
  Tue May 06 14:57:55 1997  Michael Welsh Duggan  <md5i@schenley.com>
  
  	* w32menu.c (win32menu_show): Call eat_mouse_events in order to


-- 
Michael Duggan
(md5i@schenley.com)
