Subject: bug#57087: 29.0.50; (face-at-point nil t) does not return all faces when hl-line-mode is active

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 12 Aug 2022 15:55:35 +0200

Eli Zaretskii <[email-masked]> writes:

> Yes, probably.  However, "return the first one" doesn't tell which one
> this would be.  Also "character has more than one face" is inaccurate,
> we should say "more than one source of face information" or somesuch.

Yup.  And `thing' is an unfortunate argument name, since people might
interpret that as the face property should be gotten from that thing (as
with get-text-property and friends with `object').

>> I think it sounds like it would be more useful if it did indeed return
>> all the faces at point instead of just the face(s) from either the
>> overlay or the face(s) from the text property.
>
> AFAICT, there's only one user of MULTIPLE, and that is org.el, so we
> should ask them what they expect.  There's always a possibility to add
> a new function, say faces-at-point.

Yes, I think perhaps adding a new function like that might make more
sense, because `face-at-point' seems like a very DWIM-ish function with
unclear semantics (like preferring the `read-face-name' over `face'
property, etc).

So I've now just explained this in the doc string.  I think the function
is basically fine as is -- it works well as a prompt default function.