Subject: Re: bug#47060: mouse-1-click-follows-link double broken by 3d5e31eceb9dc1fb62b2b27bcab549df3bd04ce9

From: Stefan Monnier <[email-masked]>
Date: Fri, 12 Mar 2021 12:38:42 -0500

>> This patch now results in this error whenever I left click on the NS
>> port. The mouse is now completely broken.
>>
>> Debugger entered--Lisp error: (error "Two bases given in one event")
>>   event-convert-list((down click mouse-1))
>>   mouse--click-1-maybe-follows-link(nil)
>
> You dropped Stefan M from the CCs, so he might not see your message.
> I've now added him back.

Oh, my!  Indeed, I forgot that I tested that with my local Emacs which
has included the patch below for some years.

Hmm... Eli, what do you say, should I revert the patch on `emacs-27`
(seeing how it's obviously not as safe as I thought), or should I add
the patch below to `emacs-27`?

The problem is that currently `event-convert-list` disagrees with
`event-modifiers` about which set of symbols can be used as modifiers:
`event-modifiers` will sometimes include `click` as a modifier, whereas
`event-convert-list` doesn't accept it.

        Stefan

diff --git a/src/keyboard.c b/src/keyboard.c
index e3fc6adf81..512fa279b3 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -6679,6 +6679,7 @@ #define MULTI_LETTER_MOD(BIT, NAME, LEN)		\
     case 'c':
       MULTI_LETTER_MOD (ctrl_modifier, "ctrl", 4);
       MULTI_LETTER_MOD (ctrl_modifier, "control", 7);
+      MULTI_LETTER_MOD (click_modifier, "click", 5);
       break;
 
     case 'H':