Subject: bug#79469: 31.0.50; Ungrammatical sentence from describe-function

From: Joost Kremers <[email-masked]>
Date: Fri, 19 Sep 2025 00:46:53 +0200

On Thu, Sep 18 2025, Stephen Berman via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:
> On Thu, 18 Sep 2025 19:55:24 +0300 Eli Zaretskii <[email-masked]> wrote:
>
>>> Date: Thu, 18 Sep 2025 18:41:16 +0200
>>> From:  Stephen Berman via "Bug reports for GNU Emacs,
>>>  the Swiss army knife of text editors" <[email-masked]>
>>> 
>>> Calling `describe-function' on a noninteractive non-byte-compiled
>>> function produces an ungrammatical sentence in the *Help* buffer:
>>> 
>>> 0. emacs -Q
>>> 1. Load a non-byte-compiled file that contains a noninteractive function
>>>    definition, e.g. edt-user.el from the Emacs "etc" directory.
>>> 2. Call `describe-function' on a noninteractive function from that file,
>>>    e.g. `C-h f edt-setup-user-bindings RET'.
>>> ==> The *Help* buffer now begins with this sentence:
>>> 
>>> edt-setup-user-bindings is a interpreted-function in
>>> ‘~/src/emacs/emacs-master/etc/edt-user.el’.
>>> 
>>> It should say "...is an interpreted-function...".
>>> 
>>> Here are three possible fixes:
>>
>> Thanks.
>>
>> I think this splits hair, but if we want to do that, let's do it
>> right: instead of hard-coding specific words, implement a function
>> that produces "a" or "an" depending on the following word.  Because
>> tomorrow someone will add yet another function qualifier, and what
>> will we do then? add one more hard-coded phrase?
>
> How's this?

> +                    (concat (if (string-match-p "\\`[aeiou]" (symbol-name type))

Potentially problematic, because not every word that starts with "u" gets
"an". And sometimes words starting with "h" also need "an".

-- 
Joost Kremers
Life has its moments