all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
@ 2023-04-02 18:49 Spencer Baugh
  2023-04-02 19:06 ` Spencer Baugh
  2023-04-06 11:47 ` Eli Zaretskii
  0 siblings, 2 replies; 10+ messages in thread
From: Spencer Baugh @ 2023-04-02 18:49 UTC (permalink / raw)
  To: 62626


1. emacs -Q
2. C-h k and in the menu bar, click on "Edit", then "Paste from Kill
Menu", then "(any string)".
3. See error printed in *Messages*:
event-basic-type: Wrong type argument: integer-or-marker-p, "(any string)"
4. Type "foobar" and kill it
5. C-h k and in the menu bar, click on "Edit", then "Paste from Kill
Menu", then "foobar".
6. See error printed in *Messages*:
event-basic-type: Wrong type argument: integer-or-marker-p, #("foobar" 0 6 (fontified t))

This happens on both Emacs 28 and Emacs 29.

It looks like this is happening because help--read-key-sequence calls
event-basic-type on the last element of the key sequence returned from
read-key-sequence, which in this case is a string.

The following patch fixes it (that is, makes describe-key complete
successfully and show appropriate help), but I'm not sure if it's right.

diff --git a/lisp/help.el b/lisp/help.el
index 83be85b1ee4..73ac793f4aa 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1021,8 +1021,8 @@ help--read-key-sequence
                    (raw-seq (this-single-command-raw-keys))
                    (keyn (when (> (length seq) 0)
                            (aref seq (1- (length seq)))))
-                   (base (event-basic-type keyn))
-                   (modifiers (event-modifiers keyn)))
+                   (base (and (integer-or-marker-p keyn) (event-basic-type keyn)))
+                   (modifiers (and (integer-or-marker-p keyn) (event-modifiers keyn))))
               (cond
                ((zerop (length seq)))   ;FIXME: Can this happen?
                ((and no-mouse-movement (eq base 'mouse-movement)) nil)
--




In GNU Emacs 29.0.60 (build 3, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.15.12, Xaw scroll bars) of 2023-03-13 built on
 igm-qws-u22796a
Repository revision: e759905d2e0828eac4c8164b09113b40f6899656
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: CentOS Linux 7 (Core)

Configured using:
 'configure --with-x-toolkit=lucid --with-modules
 --with-gif=ifavailable'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM LUCID
ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  bug-reference-prog-mode: t
  jane-fe-minor-mode: t
  editorconfig-mode: t
  which-function-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  shell-dirtrack-mode: t
  windmove-mode: t
  savehist-mode: t
  save-place-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/csharp-mode hides /home/sbaugh/.local/src/emacs29/lisp/progmodes/csharp-mode
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/eldoc hides /home/sbaugh/.local/src/emacs29/lisp/emacs-lisp/eldoc
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/auctex/lpath hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dictionary/lpath
/home/sbaugh/.local/src/emacs29/lisp/net/dictionary hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dictionary/dictionary
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/caml-font hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/ocaml/caml-font
/home/sbaugh/.local/src/emacs29/lisp/org/org-version hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-version
/home/sbaugh/.local/src/emacs29/lisp/org/org-loaddefs hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-loaddefs
/home/sbaugh/.local/src/emacs29/lisp/org/org-keys hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-keys
/home/sbaugh/.local/src/emacs29/lisp/org/ol hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol
/home/sbaugh/.local/src/emacs29/lisp/org/ob-perl hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-perl
/home/sbaugh/.local/src/emacs29/lisp/org/ob-core hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-core
/home/sbaugh/.local/src/emacs29/lisp/org/ox hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox
/home/sbaugh/.local/src/emacs29/lisp/org/ol-rmail hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-rmail
/home/sbaugh/.local/src/emacs29/lisp/org/ob-octave hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-octave
/home/sbaugh/.local/src/emacs29/lisp/org/ob-comint hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-comint
/home/sbaugh/.local/src/emacs29/lisp/org/ol-w3m hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-w3m
/home/sbaugh/.local/src/emacs29/lisp/org/ob-org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-org
/home/sbaugh/.local/src/emacs29/lisp/org/ox-texinfo hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-texinfo
/home/sbaugh/.local/src/emacs29/lisp/org/org-inlinetask hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-inlinetask
/home/sbaugh/.local/src/emacs29/lisp/org/ol-mhe hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-mhe
/home/sbaugh/.local/src/emacs29/lisp/org/ob-ocaml hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ocaml
/home/sbaugh/.local/src/emacs29/lisp/org/ob-clojure hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-clojure
/home/sbaugh/.local/src/emacs29/lisp/org/ox-publish hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-publish
/home/sbaugh/.local/src/emacs29/lisp/org/ol-irc hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-irc
/home/sbaugh/.local/src/emacs29/lisp/org/ob-calc hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-calc
/home/sbaugh/.local/src/emacs29/lisp/org/ox-odt hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-odt
/home/sbaugh/.local/src/emacs29/lisp/org/org-id hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-id
/home/sbaugh/.local/src/emacs29/lisp/org/ol-gnus hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-gnus
/home/sbaugh/.local/src/emacs29/lisp/org/ob-matlab hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-matlab
/home/sbaugh/.local/src/emacs29/lisp/org/ox-icalendar hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-icalendar
/home/sbaugh/.local/src/emacs29/lisp/org/org-footnote hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-footnote
/home/sbaugh/.local/src/emacs29/lisp/org/ol-bibtex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-bibtex
/home/sbaugh/.local/src/emacs29/lisp/org/ob-lisp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lisp
/home/sbaugh/.local/src/emacs29/lisp/org/ob-C hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-C
/home/sbaugh/.local/src/emacs29/lisp/org/ox-org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-org
/home/sbaugh/.local/src/emacs29/lisp/org/org-indent hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-indent
/home/sbaugh/.local/src/emacs29/lisp/org/ol-info hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-info
/home/sbaugh/.local/src/emacs29/lisp/org/ob-maxima hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-maxima
/home/sbaugh/.local/src/emacs29/lisp/org/ob-awk hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-awk
/home/sbaugh/.local/src/emacs29/lisp/org/ox-man hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-man
/home/sbaugh/.local/src/emacs29/lisp/org/org-goto hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-goto
/home/sbaugh/.local/src/emacs29/lisp/org/ox-md hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-md
/home/sbaugh/.local/src/emacs29/lisp/org/ol-eshell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-eshell
/home/sbaugh/.local/src/emacs29/lisp/org/ob-lua hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lua
/home/sbaugh/.local/src/emacs29/lisp/org/org-habit hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-habit
/home/sbaugh/.local/src/emacs29/lisp/org/ob-R hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-R
/home/sbaugh/.local/src/emacs29/lisp/org/ol-eww hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-eww
/home/sbaugh/.local/src/emacs29/lisp/org/ob-makefile hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-makefile
/home/sbaugh/.local/src/emacs29/lisp/org/ox-latex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-latex
/home/sbaugh/.local/src/emacs29/lisp/org/ol-docview hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-docview
/home/sbaugh/.local/src/emacs29/lisp/org/ob-lob hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lob
/home/sbaugh/.local/src/emacs29/lisp/org/ox-beamer hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-beamer
/home/sbaugh/.local/src/emacs29/lisp/org/org-faces hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-faces
/home/sbaugh/.local/src/emacs29/lisp/org/ob hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob
/home/sbaugh/.local/src/emacs29/lisp/org/ox-html hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-html
/home/sbaugh/.local/src/emacs29/lisp/org/org-feed hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-feed
/home/sbaugh/.local/src/emacs29/lisp/org/ol-bbdb hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-bbdb
/home/sbaugh/.local/src/emacs29/lisp/org/ob-lilypond hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lilypond
/home/sbaugh/.local/src/emacs29/lisp/org/ox-ascii hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-ascii
/home/sbaugh/.local/src/emacs29/lisp/org/ob-latex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-latex
/home/sbaugh/.local/src/emacs29/lisp/org/org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org
/home/sbaugh/.local/src/emacs29/lisp/org/ob-tangle hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-tangle
/home/sbaugh/.local/src/emacs29/lisp/org/org-tempo hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-tempo
/home/sbaugh/.local/src/emacs29/lisp/org/org-duration hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-duration
/home/sbaugh/.local/src/emacs29/lisp/org/ob-sqlite hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sqlite
/home/sbaugh/.local/src/emacs29/lisp/org/org-entities hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-entities
/home/sbaugh/.local/src/emacs29/lisp/org/ob-table hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-table
/home/sbaugh/.local/src/emacs29/lisp/org/ob-js hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-js
/home/sbaugh/.local/src/emacs29/lisp/org/org-table hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-table
/home/sbaugh/.local/src/emacs29/lisp/org/ob-sql hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sql
/home/sbaugh/.local/src/emacs29/lisp/org/org-timer hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-timer
/home/sbaugh/.local/src/emacs29/lisp/org/org-element hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-element
/home/sbaugh/.local/src/emacs29/lisp/org/ob-java hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-java
/home/sbaugh/.local/src/emacs29/lisp/org/org-ctags hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-ctags
/home/sbaugh/.local/src/emacs29/lisp/org/ob-shell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-shell
/home/sbaugh/.local/src/emacs29/lisp/org/ob-groovy hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-groovy
/home/sbaugh/.local/src/emacs29/lisp/org/org-src hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-src
/home/sbaugh/.local/src/emacs29/lisp/org/org-datetree hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-datetree
/home/sbaugh/.local/src/emacs29/lisp/org/ob-haskell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-haskell
/home/sbaugh/.local/src/emacs29/lisp/org/org-plot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-plot
/home/sbaugh/.local/src/emacs29/lisp/org/org-compat hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-compat
/home/sbaugh/.local/src/emacs29/lisp/org/ob-screen hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-screen
/home/sbaugh/.local/src/emacs29/lisp/org/ob-fortran hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-fortran
/home/sbaugh/.local/src/emacs29/lisp/org/org-protocol hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-protocol
/home/sbaugh/.local/src/emacs29/lisp/org/org-crypt hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-crypt
/home/sbaugh/.local/src/emacs29/lisp/org/ob-sed hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sed
/home/sbaugh/.local/src/emacs29/lisp/org/ob-gnuplot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-gnuplot
/home/sbaugh/.local/src/emacs29/lisp/org/org-pcomplete hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-pcomplete
/home/sbaugh/.local/src/emacs29/lisp/org/org-colview hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-colview
/home/sbaugh/.local/src/emacs29/lisp/org/ob-scheme hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-scheme
/home/sbaugh/.local/src/emacs29/lisp/org/ob-forth hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-forth
/home/sbaugh/.local/src/emacs29/lisp/org/org-num hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-num
/home/sbaugh/.local/src/emacs29/lisp/org/org-clock hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-clock
/home/sbaugh/.local/src/emacs29/lisp/org/ob-exp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-exp
/home/sbaugh/.local/src/emacs29/lisp/org/org-mouse hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-mouse
/home/sbaugh/.local/src/emacs29/lisp/org/org-capture hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-capture
/home/sbaugh/.local/src/emacs29/lisp/org/ob-sass hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sass
/home/sbaugh/.local/src/emacs29/lisp/org/ob-eval hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-eval
/home/sbaugh/.local/src/emacs29/lisp/org/ob-ref hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ref
/home/sbaugh/.local/src/emacs29/lisp/org/ob-emacs-lisp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-emacs-lisp
/home/sbaugh/.local/src/emacs29/lisp/org/org-mobile hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-mobile
/home/sbaugh/.local/src/emacs29/lisp/org/ob-ruby hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ruby
/home/sbaugh/.local/src/emacs29/lisp/org/ob-eshell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-eshell
/home/sbaugh/.local/src/emacs29/lisp/org/org-lint hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-lint
/home/sbaugh/.local/src/emacs29/lisp/org/org-agenda hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-agenda
/home/sbaugh/.local/src/emacs29/lisp/org/org-macro hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-macro
/home/sbaugh/.local/src/emacs29/lisp/org/org-attach-git hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-attach-git
/home/sbaugh/.local/src/emacs29/lisp/org/ob-processing hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-processing
/home/sbaugh/.local/src/emacs29/lisp/org/ob-css hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-css
/home/sbaugh/.local/src/emacs29/lisp/org/ob-dot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-dot
/home/sbaugh/.local/src/emacs29/lisp/org/org-list hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-list
/home/sbaugh/.local/src/emacs29/lisp/org/org-macs hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-macs
/home/sbaugh/.local/src/emacs29/lisp/org/org-attach hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-attach
/home/sbaugh/.local/src/emacs29/lisp/org/org-archive hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-archive
/home/sbaugh/.local/src/emacs29/lisp/org/ob-python hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-python
/home/sbaugh/.local/src/emacs29/lisp/org/ob-plantuml hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-plantuml
/home/sbaugh/.local/src/emacs29/lisp/org/ob-ditaa hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ditaa
/home/sbaugh/.local/src/emacs29/lisp/org/ob-julia hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ob-julia
/home/sbaugh/.local/src/emacs29/lisp/org/ol-man hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ol-man
/home/sbaugh/.local/src/emacs29/lisp/org/ox-koma-letter hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ox-koma-letter
/home/sbaugh/.emacs.d/elpa/dash-2.19.1/dash hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dash/dash
/home/sbaugh/.emacs.d/elpa/dash-2.19.1/dash-functional hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dash/dash-functional

Features:
(quail emacs-news-mode descr-text magit-imenu git-rebase etags repeat
fileloop etrace elp two-column sml-mode sml-move sml-defs sml-util
sml-compat org-datetree completion diary-lib diary-loaddefs cal-iso
cal-move mule-diag ispell reveal semantic/symref/grep semantic/symref
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet reposition pulse mule-util ibuffer
ibuffer-loaddefs timezone face-remap url-http-ntlm ntlm hmac-md5
hex-util md4 man em-unix em-term term disp-table ehelp em-script
em-prompt em-ls em-hist em-pred em-glob em-extpipe em-cmpl em-dirs
esh-var em-basic em-banner em-alias esh-mode eshell esh-cmd esh-ext
esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util make-mode pcmpl-unix pcmpl-gnu rect cus-edit cus-start
cus-load finder lisp-mnt url-misc network-stream url-cache debbugs-gnu
debbugs-compat debbugs soap-client url-http url-gw nsm rng-xsd
xsd-regexp textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check shadow mail-extr emacsbug sql tabify oc-basic org-capture
shortdoc dabbrev misc ob-ditaa ob-plantuml org-clock org-colview
org-crypt org-ctags org-habit org-mouse org-plot org-protocol ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda
ox-html table ox-ascii ox-publish ox org-element org-persist org-id
org-refile avl-tree generator cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs novice vc-hg sort ol-eww
eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range gnus-win gnus nnheader range wid-edit
ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb
ol-w3m ol-doi org-link-doi log-view vc-git vc vc-dispatcher texinfo
texinfo-loaddefs misearch multi-isearch bug-reference dired-aux
sh-script treesit hl-line display-line-numbers executable cl-print
help-fns radix-tree find-dired goto-addr tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
jane-project jane-merlin merlin-imenu merlin-xref xref merlin-cap merlin
jane-async-merlin jane-completion jane-common jane-fe-menu ecaml_plugin
linum view gopcaml magit-bookmark bookmark image+ advice image-file
image-converter editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch whitespace jane-auto-modes vba-mode markdown-mode
color jane jane-micro-features grep jane-diff unified-test-mode
shell-file core core-buffer core-error core-util ert pp ewoc debug
backtrace jane-sexp jane-ocaml jane-tuareg-theme tuareg tuareg-compat
tuareg-opam skeleton flymake-proc flymake warnings smie caml-types
caml-help caml-emacs find-file compile jane-cr jane-align
jane-deprecated jane-smerge gnu-elpa-keyring-update jane-ocp-indent
ocp-indent cl jane-util page-ext dired-x magit-extras project
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit message
sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util text-property-search mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor shell server
magit-mode transient edmacro kmacro magit-git magit-section magit-utils
crm dash cl-extra help-mode windmove org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete pcomplete
org-list org-footnote org-faces org-entities time-date noutline outline
icons ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx org-fold
org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs format-spec gdb-mi bindat
gud easy-mmode comint ansi-osc ansi-color ring ffap thingatpt vundo
pcase cyberpunk-theme savehist saveplace vundo-autoloads magit-autoloads
csv-mode-autoloads magit-section-autoloads cyberpunk-theme-autoloads
url-http-ntlm-autoloads url-auth git-commit-autoloads
with-editor-autoloads finder-inf info dash-autoloads package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 2222181 268198)
 (symbols 48 69243 2)
 (strings 32 319255 34424)
 (string-bytes 1 12232202)
 (vectors 16 139420)
 (vector-slots 8 5377201 353952)
 (floats 8 669 703)
 (intervals 56 254854 2268)
 (buffers 976 402)
 (heap 1024 865236 188241))





^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-02 18:49 bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item] Spencer Baugh
@ 2023-04-02 19:06 ` Spencer Baugh
  2023-04-06 11:49   ` Eli Zaretskii
  2023-04-06 11:47 ` Eli Zaretskii
  1 sibling, 1 reply; 10+ messages in thread
From: Spencer Baugh @ 2023-04-02 19:06 UTC (permalink / raw)
  To: 62626

Spencer Baugh <sbaugh@janestreet.com> writes:
> 1. emacs -Q
> 2. C-h k and in the menu bar, click on "Edit", then "Paste from Kill
> Menu", then "(any string)".
> 3. See error printed in *Messages*:
> event-basic-type: Wrong type argument: integer-or-marker-p, "(any string)"

describe-key is also broken with context-menu-mode in a different way,
btw.  It generates the help buffer fine, but the last key in the
sequence is wrong.  It looks like read-key-sequence returns a numeric
index into the menu for that key, counting up from from the last menu
entry and starting at 1, and then the help buffer is interpreting that
number as a key.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-02 18:49 bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item] Spencer Baugh
  2023-04-02 19:06 ` Spencer Baugh
@ 2023-04-06 11:47 ` Eli Zaretskii
  2023-04-06 14:07   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2023-04-06 11:47 UTC (permalink / raw)
  To: Spencer Baugh, Stefan Monnier; +Cc: 62626

> From: Spencer Baugh <sbaugh@janestreet.com>
> Date: Sun, 02 Apr 2023 14:49:41 -0400
> 
> 
> 1. emacs -Q
> 2. C-h k and in the menu bar, click on "Edit", then "Paste from Kill
> Menu", then "(any string)".
> 3. See error printed in *Messages*:
> event-basic-type: Wrong type argument: integer-or-marker-p, "(any string)"
> 4. Type "foobar" and kill it
> 5. C-h k and in the menu bar, click on "Edit", then "Paste from Kill
> Menu", then "foobar".
> 6. See error printed in *Messages*:
> event-basic-type: Wrong type argument: integer-or-marker-p, #("foobar" 0 6 (fontified t))
> 
> This happens on both Emacs 28 and Emacs 29.

AFAICT, this has been broken since Emacs 27.

> It looks like this is happening because help--read-key-sequence calls
> event-basic-type on the last element of the key sequence returned from
> read-key-sequence, which in this case is a string.

Yes.

> The following patch fixes it (that is, makes describe-key complete
> successfully and show appropriate help), but I'm not sure if it's right.
> 
> diff --git a/lisp/help.el b/lisp/help.el
> index 83be85b1ee4..73ac793f4aa 100644
> --- a/lisp/help.el
> +++ b/lisp/help.el
> @@ -1021,8 +1021,8 @@ help--read-key-sequence
>                     (raw-seq (this-single-command-raw-keys))
>                     (keyn (when (> (length seq) 0)
>                             (aref seq (1- (length seq)))))
> -                   (base (event-basic-type keyn))
> -                   (modifiers (event-modifiers keyn)))
> +                   (base (and (integer-or-marker-p keyn) (event-basic-type keyn)))
> +                   (modifiers (and (integer-or-marker-p keyn) (event-modifiers keyn))))
>                (cond
>                 ((zerop (length seq)))   ;FIXME: Can this happen?
>                 ((and no-mouse-movement (eq base 'mouse-movement)) nil)

Doesn't the above break "C-h c" and "C-h k" for mouse click events?
They yield a symbol like down-mouse-1 as KEYN, so are rejected by your
proposed condition.

I suggest the below instead.  I'm just not sure about what to do with
RAW-SEQ (which is returned as the cdr of the cons cell value of this
function).  Emacs 26 returned nil there, so we are "bug-compatible"
with it after applying the below.  But since this is a general-purpose
utility function, perhaps we should return the same value as SEQ
there?  I mean, what does "untranslated" mean for such "events"?

An alternative solution for the original problem would be to teach
event-basic-type and event-modifiers about "events" that happen to be
strings.

Stefan, any comments or better ideas?

diff --git a/lisp/help.el b/lisp/help.el
index 6eac037..299042f 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1012,7 +1012,7 @@ help--read-key-sequence
     (unwind-protect
         (let (last-modifiers key-list)
           ;; If yank-menu is empty, populate it temporarily, so that
-          ;; "Select and Paste" menu can generate a complete event.
+          ;; "Paste from Kill Menu" menu can generate a complete event.
           (when (null (cdr yank-menu))
             (setq saved-yank-menu (copy-sequence yank-menu))
             (menu-bar-update-yank-menu "(any string)" nil))
@@ -1031,8 +1031,14 @@ help--read-key-sequence
                    (raw-seq (this-single-command-raw-keys))
                    (keyn (when (> (length seq) 0)
                            (aref seq (1- (length seq)))))
-                   (base (event-basic-type keyn))
-                   (modifiers (event-modifiers keyn)))
+                   ;; The "Paste from Kill Menu" menu-bar item has the
+                   ;; text-to-yank, a string, as its last "event"
+                   ;; component, and those are not supported by
+                   ;; 'event-basic-type' and 'event-modifiers'.
+                   (str-from-menu (stringp keyn))
+                   (base (and (not str-from-menu) (event-basic-type keyn)))
+                   (modifiers (and (not str-from-menu)
+                                   (event-modifiers keyn))))
               (cond
                ((zerop (length seq)))   ;FIXME: Can this happen?
                ((and no-mouse-movement (eq base 'mouse-movement)) nil)





^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-02 19:06 ` Spencer Baugh
@ 2023-04-06 11:49   ` Eli Zaretskii
  2023-04-06 13:07     ` Spencer Baugh
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2023-04-06 11:49 UTC (permalink / raw)
  To: Spencer Baugh; +Cc: 62626

> From: Spencer Baugh <sbaugh@janestreet.com>
> Date: Sun, 02 Apr 2023 15:06:53 -0400
> 
> describe-key is also broken with context-menu-mode in a different way,
> btw.  It generates the help buffer fine, but the last key in the
> sequence is wrong.  It looks like read-key-sequence returns a numeric
> index into the menu for that key, counting up from from the last menu
> entry and starting at 1, and then the help buffer is interpreting that
> number as a key.

Please provide a recipe (and perhaps report this as a different bug,
unless my proposed solution happens to fix this one as well, by sheer
luck).

Thanks.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-06 11:49   ` Eli Zaretskii
@ 2023-04-06 13:07     ` Spencer Baugh
  2023-04-06 13:49       ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Spencer Baugh @ 2023-04-06 13:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62626

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Spencer Baugh <sbaugh@janestreet.com>
>> Date: Sun, 02 Apr 2023 15:06:53 -0400
>> 
>> describe-key is also broken with context-menu-mode in a different way,
>> btw.  It generates the help buffer fine, but the last key in the
>> sequence is wrong.  It looks like read-key-sequence returns a numeric
>> index into the menu for that key, counting up from from the last menu
>> entry and starting at 1, and then the help buffer is interpreting that
>> number as a key.
>
> Please provide a recipe (and perhaps report this as a different bug,
> unless my proposed solution happens to fix this one as well, by sheer
> luck).
>
> Thanks.

Ah I wasn't clear, it's also an issue with yank-menu.  Probably
basically the same bug?  Recipe:

1. emacs -Q
2. M-x context-menu-mode RET
3. Type "foobar" and kill it
4. C-h k and right click, then "Paste from Kill Menu", then "(any string)".
5. Observe the help buffer claims the key sequence was:
<down-mouse-3> <paste-from-menu> C-a






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-06 13:07     ` Spencer Baugh
@ 2023-04-06 13:49       ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2023-04-06 13:49 UTC (permalink / raw)
  To: Spencer Baugh; +Cc: 62626

> From: Spencer Baugh <sbaugh@janestreet.com>
> Cc: 62626@debbugs.gnu.org
> Date: Thu, 06 Apr 2023 09:07:46 -0400
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Please provide a recipe (and perhaps report this as a different bug,
> > unless my proposed solution happens to fix this one as well, by sheer
> > luck).
> >
> > Thanks.
> 
> Ah I wasn't clear, it's also an issue with yank-menu.  Probably
> basically the same bug?  Recipe:
> 
> 1. emacs -Q
> 2. M-x context-menu-mode RET
> 3. Type "foobar" and kill it
> 4. C-h k and right click, then "Paste from Kill Menu", then "(any string)".
> 5. Observe the help buffer claims the key sequence was:
> <down-mouse-3> <paste-from-menu> C-a

Thanks.  It's a separate issue, although most probably related.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-06 11:47 ` Eli Zaretskii
@ 2023-04-06 14:07   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-04-08 12:43     ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-06 14:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Spencer Baugh, 62626

> An alternative solution for the original problem would be to teach
> event-basic-type and event-modifiers about "events" that happen to be
> strings.

Since `read-key-sequence` returns those, we should probably teach
`event-*` functions to deal with them.

But since they don't agree with `eventp`, maybe we should also consider
deprecating such "weird keys".

FWIW, that very same "Paste from Kill Menu" is constructed differently in
`context-menu-region` where it doesn't suffer from this problem (it
uses integers instead of strings, as keys).


        Stefan






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-06 14:07   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-04-08 12:43     ` Eli Zaretskii
  2023-04-08 15:42       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2023-04-08 12:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: sbaugh, 62626

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Spencer Baugh <sbaugh@janestreet.com>,  62626@debbugs.gnu.org
> Date: Thu, 06 Apr 2023 10:07:47 -0400
> 
> > An alternative solution for the original problem would be to teach
> > event-basic-type and event-modifiers about "events" that happen to be
> > strings.
> 
> Since `read-key-sequence` returns those, we should probably teach
> `event-*` functions to deal with them.

Done.

> But since they don't agree with `eventp`, maybe we should also consider
> deprecating such "weird keys".

Patches welcome (and this is not for the release branch anyway).

> FWIW, that very same "Paste from Kill Menu" is constructed differently in
> `context-menu-region` where it doesn't suffer from this problem (it
> uses integers instead of strings, as keys).

Aren't those integer indices the reason why the recipe below:

  emacs -Q
  M-x context-menu-mode RET
  Type "foobar" and kill it
  C-h k and right click, then "Paste from Kill Menu", then select string
  Observe the help buffer claims the key sequence was:
    <down-mouse-3> <paste-from-menu> C-a
                                     ^^^
shows the bogus "C-a" at the end of the sequence?  I believe C-a comes
from the index 1 that read-key-sequence returns at the end of the
sequence:

  [(down-mouse-3 (#<window 3 on *scratch*> 146 (422 . 257) 1959895390 nil 146 (52 . 3) nil (422 . 209) (8 . 16))) paste-from-menu 1]





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-08 12:43     ` Eli Zaretskii
@ 2023-04-08 15:42       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-04-08 17:13         ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-08 15:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: sbaugh, 62626

> Aren't those integer indices the reason why the recipe below:
>
>   emacs -Q
>   M-x context-menu-mode RET
>   Type "foobar" and kill it
>   C-h k and right click, then "Paste from Kill Menu", then select string
>   Observe the help buffer claims the key sequence was:
>     <down-mouse-3> <paste-from-menu> C-a
>                                      ^^^
> shows the bogus "C-a" at the end of the sequence?

Indeed.  We should probably use something
like (intern (format "entry-%d" i)) to avoid confusion.

`context-menu-mode` code has a few other differences with the "normal"
menu (e.g. it fails to truncate long strings, etc...), so we should
consolidate the two codes to keep the best of each.


        Stefan






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item]
  2023-04-08 15:42       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-04-08 17:13         ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2023-04-08 17:13 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: sbaugh, 62626

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: sbaugh@janestreet.com,  62626@debbugs.gnu.org
> Date: Sat, 08 Apr 2023 11:42:40 -0400
> 
> > Aren't those integer indices the reason why the recipe below:
> >
> >   emacs -Q
> >   M-x context-menu-mode RET
> >   Type "foobar" and kill it
> >   C-h k and right click, then "Paste from Kill Menu", then select string
> >   Observe the help buffer claims the key sequence was:
> >     <down-mouse-3> <paste-from-menu> C-a
> >                                      ^^^
> > shows the bogus "C-a" at the end of the sequence?
> 
> Indeed.  We should probably use something
> like (intern (format "entry-%d" i)) to avoid confusion.

Done.

> `context-menu-mode` code has a few other differences with the "normal"
> menu (e.g. it fails to truncate long strings, etc...), so we should
> consolidate the two codes to keep the best of each.

Well, each of these two approaches has its ugly aspects, so...





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-04-08 17:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-02 18:49 bug#62626: 29.0.60; describe-key errors on Edit → Paste from Kill Ring → [any item] Spencer Baugh
2023-04-02 19:06 ` Spencer Baugh
2023-04-06 11:49   ` Eli Zaretskii
2023-04-06 13:07     ` Spencer Baugh
2023-04-06 13:49       ` Eli Zaretskii
2023-04-06 11:47 ` Eli Zaretskii
2023-04-06 14:07   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-08 12:43     ` Eli Zaretskii
2023-04-08 15:42       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-08 17:13         ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.