GNU bug report logs - #70596
30.0.50; key-translate returns error for key sequences with punctuation marks

Previous Next

Package: emacs;

Reported by: Alexander Prähauser <ahprae <at> protonmail.com>

Date: Fri, 26 Apr 2024 17:31:07 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

To reply to this bug, email your comments to 70596 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Fri, 26 Apr 2024 17:31:10 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alexander Prähauser <ahprae <at> protonmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 26 Apr 2024 17:31:10 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alexander Prähauser <ahprae <at> protonmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Fri, 26 Apr 2024 17:29:35 +0000
I think this is a bug: emacs returns an error message for the
following command:

(key-translate "C-." "C-a")

The backtrace is the following:

Debugger entered--Lisp error: (wrong-type-argument characterp 67108910)
key-translate("C-." "C-g")
(let ((print-level nil) (print-length nil)) (key-translate "C-." "C-g"))
(setq elisp--eval-defun-result (let ((print-level nil) (print-length nil)) (key-translate "C-." "C-g")))
elisp--eval-defun()
#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_38>()
eval-defun(nil)
funcall-interactively(eval-defun nil)
command-execute(eval-defun)

I also tested this on an Emacs version I just downloaded and compiled
and started without an init. This is in spite of the fact that

(key-valid-p " C-.")

returns t. I also tried

(key-translate "C-<period>" "C-a")

for which I get a different error:

Debugger entered--Lisp error: (wrong-type-argument fixnump C-period)
  key-translate("C-<period>" "C-a")
  (progn (key-translate "C-<period>" "C-a"))
  (let ((print-level nil) (print-length nil)) (progn (key-translate "C-<period>" "C-a")))
  (setq elisp--eval-defun-result (let ((print-level nil) (print-length nil)) (progn (key-translate "C-<period>" "C-a"))))
  elisp--eval-defun()
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_38>()
  eval-defun(nil)
  funcall-interactively(eval-defun nil)
  command-execute(eval-defun record)
  execute-extended-command(nil "eval-defun" "eval-defun")
  funcall-interactively(execute-extended-command nil "eval-defun" "eval-defun")
  command-execute(execute-extended-command)



In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version
 1.18.0) of 2024-02-08 built on Archlaptop
Repository revision: 08c81db7c8e522278fb2c8de8fbe556d109c135f
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101012
System Description: Arch Linux

Configured using:
 'configure --with-x-toolkit=no'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  scroll-lock-mode: t
  semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode)  S)))
  lsp-treemacs-sync-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  async-bytecomp-package-mode: t
  telega-root-auto-fill-mode: t
  telega-active-video-chats-mode: t
  telega-active-locations-mode: t
  telega-patrons-mode: t
  telega-active-stories-mode: t
  citar-embark-mode: t
  recentf-mode: t
  windmove-mode: t
  global-edit-server-edit-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  auto-insert-mode: t
  dynamic-completion-mode: t
  electric-pair-mode: t
  delete-selection-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  rainbow-blocks-mode: t
  rainbow-delimiters-mode: t
  global-org-modern-mode: t
  TeX-PDF-mode: t
  fancy-compilation-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  all-the-icons-completion-mode: t
  global-aggressive-indent-mode: t
  aggressive-indent-mode: t
  org-roam-db-autosync-mode: t
  corfu-prescient-mode: t
  global-corfu-mode: t
  corfu-mode: t
  vertico-prescient-mode: t
  marginalia-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  savehist-mode: t
  vertico-mode: t
  smart-mark-mode: t
  winner-mode: t
  Daselt-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  override-global-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  prettify-symbols-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  undelete-frame-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult hides /home/alex/.emacs.d/straight/build/consult/consult
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-xref hides /home/alex/.emacs.d/straight/build/consult/consult-xref
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-register hides /home/alex/.emacs.d/straight/build/consult/consult-register
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-org hides /home/alex/.emacs.d/straight/build/consult/consult-org
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-kmacro hides /home/alex/.emacs.d/straight/build/consult/consult-kmacro
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-info hides /home/alex/.emacs.d/straight/build/consult/consult-info
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-imenu hides /home/alex/.emacs.d/straight/build/consult/consult-imenu
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-flymake hides /home/alex/.emacs.d/straight/build/consult/consult-flymake
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-compile hides /home/alex/.emacs.d/straight/build/consult/consult-compile
/home/alex/.emacs.d/elpa/consult-20240405.2112/consult-autoloads hides /home/alex/.emacs.d/straight/build/consult/consult-autoloads
~/.emacs.d/site-lisp/DEmacs/DEmacs-basic/add-tex-envs hides /home/alex/.emacs.d/site-lisp/add-tex-envs
/home/alex/.emacs.d/elpa/org-noter-20240207.2329/modules/org-noter-org-roam hides /home/alex/.emacs.d/elpa/org-noter-20240207.2329/org-noter-org-roam
/home/alex/.emacs.d/elpa/org-projectile-helm-20230817.801/org-projectile-helm hides /home/alex/.emacs.d/elpa/org-projectile-20230817.851/org-projectile-helm
/home/alex/.emacs.d/straight/build/compat/compat hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat
/home/alex/.emacs.d/straight/build/compat/compat-29 hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-29
/home/alex/.emacs.d/straight/build/compat/compat-28 hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-28
/home/alex/.emacs.d/straight/build/compat/compat-27 hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-27
/home/alex/.emacs.d/straight/build/compat/compat-26 hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-26
/home/alex/.emacs.d/straight/build/compat/compat-25 hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-25
/home/alex/.emacs.d/straight/build/compat/compat-autoloads hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-autoloads
/home/alex/.emacs.d/straight/build/compat/compat-macs hides /home/alex/.emacs.d/elpa/compat-29.1.4.5/compat-macs
/home/alex/.emacs.d/elpa/transient-20240415.1548/transient hides /usr/local/share/emacs/30.0.50/lisp/transient
/home/alex/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /usr/local/share/emacs/30.0.50/lisp/bind-key
/home/alex/.emacs.d/elpa/modus-themes-20240322.519/theme-loaddefs hides /usr/local/share/emacs/30.0.50/lisp/theme-loaddefs
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-lint
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-jump
/home/alex/.emacs.d/elpa/use-package-ensure-system-package-20221209.2013/use-package-ensure-system-package hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-ensure-system-package
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-ensure
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-diminish
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-delight
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-core
/home/alex/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-bind-key
/home/alex/.emacs.d/straight/build/compat/compat hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/compat
/home/alex/.emacs.d/straight/build/seq/seq hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/seq
/home/alex/.emacs.d/site-lisp/dired+ hides /home/alex/.emacs.d/site-lisp/icicles/dired+
/home/alex/.emacs.d/elpa/bookmark+-20230325.160624/bookmark+ hides /home/alex/.emacs.d/site-lisp/icicles/bookmark+
~/.emacs.d/site-lisp/Avy-act-on-Distance/avy-act-on-distance hides /home/alex/.emacs.d/site-lisp/DEmacs/avy-act-on-distance/avy-act-on-distance

Features:
(shadow pcmpl-unix eldoc-box eldoc-box-autoloads eglot
external-completion jsonrpc seq-25 tramp-archive tramp-gvfs zeroconf
scroll-lock vc-hg vc-bzr c++-ts-mode c-ts-mode tramp-cmds projectile
ibuf-ext ibuffer ibuffer-loaddefs sanityinc-tomorrow-day-theme
modus-vivendi-tritanopia-theme modus-operandi-tritanopia-theme
modus-vivendi-deuteranopia-theme modus-operandi-deuteranopia-theme
modus-vivendi-tinted-theme modus-operandi-tinted-theme
modus-vivendi-theme modus-operandi-theme modus-themes
modus-themes-autoloads image-dired-dired lsp-ui-flycheck flycheck
flycheck-autoloads mood-line-segment-checker mood-line consult-lsp lsp
consult-lsp-autoloads calc-misc calc-comb calc-alg calc-ext calc-menu
calc calc-loaddefs calc-macs json-ts-mode lsp-treemacs
lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros
lsp-treemacs-autoloads lsp-clojure lsp-semantic-tokens lsp-completion
lsp-diagnostics lsp-headerline lsp-icons lsp-modeline lsp-lens lsp-ui
lsp-ui-doc lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util
lsp-ui-autoloads view lsp-julia lsp-julia-autoloads lsp-mode-autoloads
easy-kill-er emoji rfc1345 quail dired-quick-sort-autoloads
helm-for-files helm-imenu semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet finder
helm-bookmark helm-external helm-mode helm-misc helm-elisp helm-files
image-dired image-dired-tags image-dired-external image-dired-util
helm-buffers helm-tags helm-locate helm-eval edebug helm-occur helm-grep
helm-regexp helm-net helm-adaptive helm-info helm-utils helm-types
helm-help helm helm-global-bindings helm-core async-bytecomp
bug-reference helm-source helm-multi-match helm-lib llm-gpt4all
llm-ollama llm-gemini llm-fake ert llm-openai llm-vertex
llm-provider-utils llm-request llm ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util benchmark
ibuf-macs posframe posframe-autoloads smudge-connect smudge-remote
smudge-playlist smudge-device-select smudge-track smudge-controller
smudge-api oauth2 plstore simple-httpd telega telega-obsolete
telega-tdlib-events telega-webpage telega-match emacsbug telega-root
telega-info telega-chat visual-fill-column telega-modes telega-filter
telega-sort telega-company telega-emoji telega-user telega-notifications
notifications telega-voip telega-ins telega-inline telega-msg
telega-story telega-tme telega-sticker telega-vvnote telega-util
telega-folders telega-topic rainbow-identifiers bindat telega-ffplay
telega-media telega-i18n telega-tdlib telega-server telega-core
telega-customize vertico-flat lsp-mode lsp-protocol markdown-mode inline
ht mule-diag find-dired image-file image-converter org-super-links
auto-yasnippet reftex-ref reftex-parse display-line-numbers mailalias
cl-print debug backtrace julia-ts-mode html-ts-mode yaml-ts-mode
treesit-auto treesit-auto-autoloads julia-ts-misc julia-mode
julia-ts-mode-autoloads julia-snail spinner popup julia-snail-autoloads
julia-mode-latexsubs julia-mode-autoloads spinner-autoloads loaddefs-gen
tar-mode oc-biblatex vterm term ehelp vterm-module term/xterm xterm
ob-ditaa ob-plantuml org-clock org-colview org-crypt org-ctags org-habit
org-mouse org-plot org-protocol org-ref-natbib-bbl-citeproc tabify sort
smiley gnus-cite flow-fill mm-archive mail-extr gnus-bcklg vertico-quick
buffer-move info-look abyss-theme citar-org oc-csl oc-basic gnus-async
qp gnus-ml disp-table nndraft nnmh nnmaildir nnfolder utf-7 gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache
smartparens-haskell smartparens-markdown smartparens-org
smartparens-text smartparens-ruby smartparens-rust face-remap shortdoc
shr-color textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check network-stream url-cache misearch multi-isearch
vertico-directory cus-start dabbrev cape-char cape image-roll plain-tex
dcl-mode tempo password-store-otp sh-script executable mhtml-mode
css-mode-expansions css-mode smie js-mode-expansions js c-ts-common
treesit cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs conf-mode tramp-cache
time-stamp tramp-sh tramp trampver tramp-integration files-x
tramp-message tramp-compat tramp-loaddefs mule-util citar-capf citar
reftex-dcr reftex-auc tex-mode font-latex latexenc pdf-outline vc-git
vc-dispatcher citar-file citar-cache citar-format ol-eww eww mm-url
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view
ol-bbdb ol-w3m ol-doi org-link-doi pdf-links pdf-sync pdf-isearch
pdf-misc dired-aux smtpmail gnus-registry registry gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill
kinsoku gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap
nnmail mail-source nnoo gnus-spec gnus-win gnus-int gnus-range imap
rfc2104 utf7 gnus nnheader range recentf tree-widget windmove
edit-server epa-file goto-addr autoinsert completion elec-pair wc-mode
delsel undo-tree avy-act-on-distance menu-bar+ misc-cmds rect bookmark+
bookmark+-key bookmark+-bmu info+ fit-frame help-fns+ wid-edit+ help-fns
radix-tree bookmark+-lit pp+ dired-x crosshairs col-highlight vline
hl-line+ bookmark+-1 thingatpt+ back-button nav-flash pulse smartrep
rainbow-blocks org-rainbow-tags dired-rainbow dired-hacks-utils
rainbow-delimiters rainbow-mode yaml-mode-expansions yaml-mode ox-md
org-modern math-delimiters add-tex-envs latex-extra preview
latex-mode-expansions latex latex-flymake flymake tex-ispell tex-style
tex dbus texmathp fancy-compilation font-utils unicode-fonts yasnippet
elgrep async grep ztree ztree-diff ztree-diff-model ztree-dir ztree-view
ztree-protocol ztree-util dedicated auto-dictionary flyspell ispell
all-the-icons-completion all-the-icons-dired all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons gptel-extensions gptel
gptel-openai tabgo tab-line dired-quick-sort ls-lisp aggressive-indent
visible-mark org-noter-org-roam org-noter org-noter-djvu org-noter-nov
org-noter-pdf pdf-tools cus-edit cus-load wid-edit pdf-view jka-compr
pdf-cache pdf-info tq pdf-util pdf-macs image-mode exif org-noter-core
ekg-import-subdirectories ekg-org-roam org-roam-dailies ekg ewoc
triples-upgrade triples-backups triples org-roam-export
use-package-ensure-system-package system-packages org-ref org-ref-core
openalex request org-ref-glossary org-ref-bibtex html-mode-expansions
sgml-mode facemenu avy doi-utils url-http url-auth url-gw nsm
org-ref-utils org-ref-export citeproc citeproc-itemgetters
citeproc-biblatex parse-time citeproc-bibtex ol-bibtex citeproc-cite
citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters
citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata
citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date
citeproc-context citeproc-prange citeproc-style citeproc-locale
citeproc-term citeproc-rt citeproc-lib citeproc-s queue ox-org 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 ox-html table
ox-ascii ox-publish ox org-ref-misc-links org-ref-label-link
org-ref-ref-links org-ref-citation-links org-ref-bibliography-links
hydra lv bibtex-completion parsebib org-roam-migrate org-roam-log
org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db
emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam
org-capture emacsql-sqlite emacsql-sqlite-common emacsql
emacsql-compiler org-brain picture org-agenda org-attach biblio
biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp
biblio-crossref biblio-arxiv timezone biblio-doi biblio-core let-alist
url-queue url-file ido hl-line bibtex iso8601 pass f s password-store
auth-source-pass kind-icon svg-lib svg dom xml corfu-terminal popon
corfu-prescient corfu vertico-prescient prescient char-fold consult-gh
consult-gh-autoloads seq-autoloads embark-consult consult magit-bookmark
bookmark embark-org embark marginalia orderless magit-submodule
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
rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util 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 magit-git magit-base magit-section cursor-sensor
crm persistent-soft list-utils pcache eieio-base savehist finder-inf
vertico-buffer vertico-mouse vertico compat smartparens loadhist dash
expand-region text-mode-expansions the-org-mode-expansions
er-basic-expansions expand-region-core expand-region-custom
easy-kill-extras easy-kill-line-edge easy-kill-buffer easy-kill-to-char
easy-kill org-element org-persist xdg org-id org-refile 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
ob-emacs-lisp ob-core ob-eval org-cycle org-table org-keys oc
org-loaddefs cal-menu calendar cal-loaddefs ol org-fold org-fold-core
org-compat avl-tree org-version org-macs format-spec smart-mark winner
DEmacs DEmacs-cdlatex-bindings cdlatex reftex reftex-loaddefs
reftex-vars DEmacs-modes DEmacs-basic-modes DEmacs-commands
DEmacs-basic-commands DEmacs-variables DEmacs-basic-variables
DEmacs-keys DEmacs-functions DEmacs-basic-keys DEmacs-basic-functions
rebinder gnus-dired edmacro auto-install ffap find-func dired
dired-loaddefs straight-autoloads straight use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key use-package-core kmacro slime-fancy
slime-indentation slime-cl-indent cl-indent slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations advice
bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
derived comp comp-cstr cl-extra help-mode warnings comp-run comp-common
rx easy-mmode lisp-mnt gud apropos compile text-property-search etags
fileloop generator xref project arc-mode archive-mode noutline outline
icons pp comint ansi-osc ansi-color ring hyperspec thingatpt
slime-autoloads desktop frameset icicles-install cl
sanityinc-tomorrow-bright-theme color-theme-sanityinc-tomorrow color
abyss-theme-autoloads aggressive-indent-autoloads all-autoloads
all-the-icons-completion-autoloads all-the-icons-dired-autoloads
auctex-cluttex-autoloads auto-dictionary-autoloads autothemer-autoloads
back-button-autoloads backup-walker-autoloads buffer-move-autoloads
bug-hunter-autoloads cape-autoloads cdlatex-autoloads
citar-embark-autoloads citar-org-roam-autoloads citar-autoloads
color-theme-sanityinc-tomorrow-autoloads consult-org-roam-autoloads
corfu-prescient-autoloads corfu-terminal-autoloads corfu-autoloads
crontab-mode-autoloads dedicated-autoloads default-text-scale-autoloads
deft-autoloads diminish-autoloads dired-rainbow-autoloads
dired-hacks-utils-autoloads dream-theme-autoloads
easy-kill-extras-autoloads ekg-autoloads elgrep-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
emms-autoloads expand-region-autoloads fancy-compilation-autoloads
forge-autoloads closql-autoloads ghub-autoloads gptel-autoloads
helm-bibtex-autoloads bufler-autoloads burly-autoloads
helm-descbinds-autoloads helm-dictionary-autoloads helm-icons-autoloads
helm-swoop-autoloads kind-icon-autoloads latex-extra-autoloads
auctex-autoloads tex-site llm-autoloads marginalia-autoloads
markdown-mode-autoloads mood-line-autoloads helm-easymenu
log4e-autoloads mu4e-column-faces-autoloads nav-flash-autoloads
orderless-autoloads org-brain-autoloads org-modern-autoloads
org-msg-autoloads org-noter-autoloads helm-autoloads helm-core-autoloads
async-autoloads org-rainbow-tags-autoloads org-ref-autoloads
citeproc-autoloads htmlize-autoloads org-roam-bibtex-autoloads
bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads
org-roam-ui-autoloads org-roam-autoloads emacsql-autoloads
org-super-links-autoloads ox-pandoc-autoloads parsebib-autoloads
pass-autoloads f-autoloads password-store-otp-autoloads
password-store-autoloads perspective-autoloads popon-autoloads
popup-autoloads pretty-hydra-autoloads rainbow-blocks-autoloads
rainbow-mode-autoloads smart-mark-autoloads smartparens-autoloads
smartrep-autoloads smudge-autoloads speed-type-autoloads
string-inflection-autoloads svg-lib-autoloads tabgo-autoloads
tablist-autoloads telega-autoloads treemacs-all-the-icons-autoloads
all-the-icons-autoloads treemacs-icons-dired-autoloads
treemacs-magit-autoloads magit-autoloads pcase magit-section-autoloads
git-commit-autoloads transient-autoloads treemacs-persp-autoloads
persp-mode-autoloads treemacs-projectile-autoloads projectile-autoloads
treemacs-tab-bar-autoloads treemacs-autoloads treepy-autoloads
triples-autoloads try-autoloads unicode-fonts-autoloads
ucs-utils-autoloads font-utils-autoloads persistent-soft-autoloads
list-utils-autoloads pcache-autoloads
use-package-ensure-system-package-autoloads system-packages-autoloads
vertico-prescient-autoloads vertico-autoloads prescient-autoloads
visible-mark-autoloads visual-fill-column-autoloads vterm-autoloads
w3m-load w3m-autoloads wakib-keys-autoloads websocket-autoloads
wfnames-autoloads with-editor-autoloads compat-autoloads yaml-autoloads
yaml-mode-autoloads yasnippet-autoloads zotero-autoloads oauth-autoloads
info dash-autoloads ztree-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 touch-screen 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 lcms2 dynamic-setting system-font-setting
font-render-setting cairo xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 36498063 5008037) (symbols 48 230232 2636) (strings 32 1834789 219023)
 (string-bytes 1 100500248) (vectors 16 686347) (vector-slots 8 9138408 1028223)
 (floats 8 26700 62062) (intervals 56 4185586 243298) (buffers 984 787))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Fri, 26 Apr 2024 18:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Alexander Prähauser <ahprae <at> protonmail.com>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Fri, 26 Apr 2024 21:28:59 +0300
> Date: Fri, 26 Apr 2024 17:29:35 +0000
> From:  Alexander Prähauser via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> 
> I think this is a bug: emacs returns an error message for the
> following command:
> 
> (key-translate "C-." "C-a")
> 
> The backtrace is the following:
> 
> Debugger entered--Lisp error: (wrong-type-argument characterp 67108910)
> key-translate("C-." "C-g")

That's because C-. is not a valid character.  Valid characters with
the Control modifier are C-SPC to C-z.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Sat, 27 Apr 2024 09:26:04 GMT) Full text and rfc822 format available.

Message #11 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Alexander Prähauser <ahprae <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Sat, 27 Apr 2024 09:24:58 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

I see. But shouldn't (key-valid-p "C-.") return nil then?

>> Date: Fri, 26 Apr 2024 17:29:35 +0000
>> From:  Alexander Prähauser via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>>
>>
>> I think this is a bug: emacs returns an error message for the
>> following command:
>>
>> (key-translate "C-." "C-a")
>>
>> The backtrace is the following:
>>
>> Debugger entered--Lisp error: (wrong-type-argument characterp 67108910)
>> key-translate("C-." "C-g")
>
> That's because C-. is not a valid character.  Valid characters with
> the Control modifier are C-SPC to C-z.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Sat, 27 Apr 2024 10:14:05 GMT) Full text and rfc822 format available.

Message #14 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Alexander Prähauser <ahprae <at> protonmail.com>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Sat, 27 Apr 2024 13:12:49 +0300
> Date: Sat, 27 Apr 2024 09:24:58 +0000
> From: Alexander Prähauser <ahprae <at> protonmail.com>
> Cc: 70596 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz <at> gnu.org> writes:
> 
> I see. But shouldn't (key-valid-p "C-.") return nil then?

No, because it's a valid key (but not a valid character).

Not every key is a character.  In fact, most keys are not valid
characters, because they name GUI function keys, like <Delete>.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Sat, 27 Apr 2024 10:48:07 GMT) Full text and rfc822 format available.

Message #17 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Alexander Prähauser <ahprae <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Sat, 27 Apr 2024 10:47:18 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

Ah, I see. Then I guess you can close this report. So is there no way to
translate C-. into C-g?

>> Date: Sat, 27 Apr 2024 09:24:58 +0000
>> From: Alexander Prähauser <ahprae <at> protonmail.com>
>> Cc: 70596 <at> debbugs.gnu.org
>>
>> "Eli Zaretskii" <eliz <at> gnu.org> writes:
>>
>> I see. But shouldn't (key-valid-p "C-.") return nil then?
>
> No, because it's a valid key (but not a valid character).
>
> Not every key is a character.  In fact, most keys are not valid
> characters, because they name GUI function keys, like <Delete>.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Sat, 27 Apr 2024 11:47:11 GMT) Full text and rfc822 format available.

Message #20 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Alexander Prähauser <ahprae <at> protonmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Sat, 27 Apr 2024 14:46:10 +0300
> Date: Sat, 27 Apr 2024 10:47:18 +0000
> From: Alexander Prähauser <ahprae <at> protonmail.com>
> Cc: 70596 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz <at> gnu.org> writes:
> 
> Ah, I see. Then I guess you can close this report. So is there no way to
> translate C-. into C-g?

I don't think so, but I added Stefan in case I'm wrong.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70596; Package emacs. (Sun, 28 Apr 2024 02:53:01 GMT) Full text and rfc822 format available.

Message #23 received at 70596 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Alexander Prähauser <ahprae <at> protonmail.com>
Cc: 70596 <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50; key-translate returns error for key
 sequences with punctuation marks
Date: Sat, 27 Apr 2024 22:51:33 -0400
> (key-translate "C-." "C-a")

`key-translate` works by modifying `keyboard-translate-table` which is
a table remapping *characters* and not *keys*.

IOW, `key-translate` is a misnomer.

> Ah, I see.  Then I guess you can close this report.  So is there no way
> to translate `C-.` into `C-g`?

There are different ways to "translate" keys, and they all work slightly
differently.  If you expect to be able to hit `C-.` (instead of `C-g`)
to interrupt a running command, then that's more delicate to do
(because such interruptions use a mechanism that doesn't go through
keymaps like normal commands do), but otherwise something like

    (define-key input-decode-map (kbd "C-.") (kbd "C-g"))

might do the trick.


        Stefan





Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Thu, 02 May 2024 09:22:01 GMT) Full text and rfc822 format available.

Notification sent to Alexander Prähauser <ahprae <at> protonmail.com>:
bug acknowledged by developer. (Thu, 02 May 2024 09:22:02 GMT) Full text and rfc822 format available.

Message #28 received at 70596-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: ahprae <at> protonmail.com, 70596-done <at> debbugs.gnu.org
Subject: Re: bug#70596: 30.0.50;
 key-translate returns error for key sequences with punctuation marks
Date: Thu, 02 May 2024 12:21:20 +0300
> Cc: 70596 <at> debbugs.gnu.org
> Date: Sat, 27 Apr 2024 22:51:33 -0400
> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> > (key-translate "C-." "C-a")
> 
> `key-translate` works by modifying `keyboard-translate-table` which is
> a table remapping *characters* and not *keys*.
> 
> IOW, `key-translate` is a misnomer.
> 
> > Ah, I see.  Then I guess you can close this report.  So is there no way
> > to translate `C-.` into `C-g`?
> 
> There are different ways to "translate" keys, and they all work slightly
> differently.  If you expect to be able to hit `C-.` (instead of `C-g`)
> to interrupt a running command, then that's more delicate to do
> (because such interruptions use a mechanism that doesn't go through
> keymaps like normal commands do), but otherwise something like
> 
>     (define-key input-decode-map (kbd "C-.") (kbd "C-g"))
> 
> might do the trick.

Thanks.  The ELisp manual already hinted on this; I've now added some
more explicit motivation, and I'm therefore closing this bug.




This bug report was last modified 6 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.