Subject: Re: bug#179: 23.0.60; Menu separators are not displayed

From: Stefan Monnier <[email-masked]>
Date: Fri, 08 Aug 2008 14:31:36 -0400

>> Did you ever get the chance to try Stefan's patch from May?
>> 
>> 
>> Stefan Monnier <[email-masked]> wrote:
>> 
>>> Does the patch below fix it?
>>> 
>>> Stefan
>> 
>> --- subr.el.~1.594.~	2008-05-02 12:47:05.000000000 -0400
>> +++ subr.el	2008-05-05 02:58:00.000000000 -0400
>> @@ -571,10 +571,14 @@
>> (let* ((key (car binding))
>> (item (cdr binding))
>> (oldbind (assq key bindings)))
>> +        (if (null key)
>> +            ;; nil keys are/were used by easy-menu for "separator lines and
>> +            ;; separator titles".  Merging them makes no sense.
>> +            (push binding bindings)
>> ;; Newer bindings override older.
>> (if oldbind (setq bindings (delq oldbind bindings)))
>> (when item                      ;nil bindings just hide older ones.
>> -          (push binding bindings))))
>> +            (push binding bindings)))))
>> (nconc map bindings)))
>> 
>> (put 'keyboard-translate-table 'char-table-extra-slots 0)
>> 

> My current Emacs does not have this patch applied (or include the
> equivalent) and does show menu separators.  So at least the problem I
> reported would appear to be fixed (I am judging from the subject line of
> the bug report, don't have the report itself here).

Indeed, IIRC I installed a different patch for this problem.  It turns
out that the nil binding is actually not special in any way and that
most separators use other names than nil, so I changed easy-menu to not
use nil either, which makes the above patch unneeded (and probably
undesirable either).

        Stefan