Gerd Möllmann writes: > Gerd Möllmann writes: > >> I would have thought that replacing read-event with read-key in >> reac-multiple-choice would have solved this, because read-key consults >> input-decode-map. But that is not the case because read-key behaves >> differently if input-decode-map has an entry for C-g or not. >> >> Without input-decode-map for C-g. >> >> #+begin_src emacs-lisp >> (read-key) ;; press C-g >> => Quit >> #+end_src >> >> >> With input-decode-map setting for C-g: >> >> #+begin_src emacs-lisp >> (read-key) ;; press C-g >> => 7 >> #+end_src >> >> Sorry for lumping these two bugs together, but I think it's easier to >> understand this way. > > I have to correct that, I confused read-event and read-key. > > read-key never quits, it always returns ^G, input-decode-map or not > > #+begin_src emacs-lisp > (read-key) ;; press C-g > => 7 > #+end_src > > > read-event quits if not input-decode-map > > #+begin_src emacs-lisp > (read-event) ;; press C-g > => Quit > #+end_src The attached patch fixes things for me. It changes only read-multiple-choice because read-key not quitting on C-g seems to have been that way already in Emacs 30.