emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kill ring menu


From: Richard Stallman
Subject: Re: kill ring menu
Date: Fri, 31 May 2002 01:05:53 -0600 (MDT)

    However, I can't just change the Fget_text_property call to
    Fget_char_property, because that would incorrectly pick up any overlay
    `face' property *before* a text property `face' value.

You are right--face handling can't use Fget_char_property.

I think the right way to handle property aliases for face
merging is to put code for property aliases directly into
the existing code that does the face merging.

Whether that will be worth making into a subroutine, I cannot say.  It
might be useful to have a function that gives you the merged face
attributes of a given position in a buffer or string.  That would be a
clean interface, and useful for other reasons.

    I guess the suggstion for property alternatives is to make it instead:

       (or (get-overlay-property ...)
           (get-text-property ...)
           (get-alternative-overlay-property ...)
           (get-alternative-text-property ...))

It should rather be

   (or (get-overlay-property ...)
       (get-alternative-overlay-property ...)
       (get-text-property ...)
       (get-alternative-text-property ...))

since overlay properties should generally override text properties.

    The think about the case you found is that it really needs to look at
    _both_ properties, so it can merge them, so it can never use
    get-char-property.  So it should be like:

       (merge-faces (or (get-overlay-property ...)
                        (get-alternative-overlay-property ...))
                    (or (get-text-property ...)
                        (get-alternative-text-property ...)))

Yes, it should be equivalent to that.



reply via email to

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