Subject: Re: bug#43300: [PATCH] Make M-x show new commands for obsolete aliases

From: Stefan Kangas <[email-masked]>
Date: Wed, 18 Nov 2020 05:49:48 -0800

"Basil L. Contovounesios" <[email-masked]> writes:

> Juri Linkov <[email-masked]> writes:
>
>>> Please find attached two patches that tweaks how M-x
>>> (execute-extended-command) works:
>>>
>>> 1. Show obsolete commands, and give their new name as an annotation.
>>
>> I noticed that some commands have " (nil)" appended as annotations
>> in M-x completions, e.g. 'M-x browse- TAB'.  Looks like " (nil)"
>> is returned in read-extended-command--annotation:
>>
>>           (obsolete
>>            (format " (%s)" (car obsolete)))

Thanks for reporting this.

> Is the following sufficient?

The old behavior was to never show obsolete commands in completion.  You
could therefore only run one if you remembered and manually typed in the
old name.  If you made a command obsolete, it would therefore just
appear to disappear from one release to the next.

The new behavior was intended to be less abrupt for cases where the old
command is anyways just an alias for a new command.  In this way, we can
more gently nudge users to use the new command instead.

I therefore think we should revert back to the old behavior for commands
that are obsolete without an alternative, that is we should not add such
commands to the list of completion candidates.