Subject: Re: 23.0.60; Menu separators are not displayed

From: David Kastrup <[email-masked]>
Date: Wed, 06 Aug 2008 00:10:07 +0200

Chong Yidong <[email-masked]> writes:

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

However, that does not mean that Stefan might not have unrelatedly
detected some special case not covered by the current code.  So while
the particular problem I have reported might no longer be present in the
code base, you should perhaps ask Stefan what case he had been thinking
about when creating the patch.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum