Subject: bug#78984: closed (Re: bug#78984: 31.0.50; `url-build-query-string' fails to escape a literal `%' in keys and values)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 02 Aug 2025 13:53:02 +0000

Your bug report

#78984: 31.0.50; `url-build-query-string' fails to escape a literal `%' in keys and values

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
78984: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78984
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#78984: 31.0.50; `url-build-query-string' fails to escape a literal `%' in keys and values
From: Eli Zaretskii <[email-masked]>
To: Steven Allen <[email-masked]>
Cc: [email-masked]
Date: Sat, 02 Aug 2025 16:51:57 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Steven Allen <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 26 Jul 2025 13:02:20 -0700
> 
> Eli Zaretskii <[email-masked]> writes:
> >
> > This patch is fine.  If it is a final version and passes all the
> > tests, I will install it.  If you have further updates, please post,
> > and I will install then.
> >
> > Thanks.
> 
> The tests pass and I'm happy with the patch as-is.

Thanks, now installed on master, and closing the bug.

Subject: 31.0.50; `url-build-query-string' fails to escape a literal `%' in keys and values
From: Steven Allen <[email-masked]>
To: [email-masked]
Date: Wed, 09 Jul 2025 14:29:17 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

`url-build-query-string' fails to escape literal `%' characters and keys
and values. To reproduce, run the following and note that it's encoded
as "%%3D" when it should be encoded as "%25%3D".

    emacs --batch --eval '(message "%s" (url-build-query-string (list (list "key" "%="))))'

The root cause appears to be that `%' is explicitly allowed in
`url-host-allowed-chars' (inherited by
`url-query-key-value-allowed-chars'), apparently to avoid re-encoding
%-encoded sequences. Unfortunately, changing this will definitely break
  things (e.g., `url-encode-url' will no longer round-trip).

The direct/simple fix would be to forbid `%' in
`url-query-key-value-allowed-chars'.

This issue also appears to affect Eglot's `eglot-path-to-uri' function
(`eglot--uri-path-allowed-chars' allows `%' in path-names),
but I haven't been able to find a stand-alone reproducer.

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, cairo version
 1.18.4) of 2025-07-04 built on Laptop
Repository revision: 5afff7ed67633864562e014feabc670f156df5b4
Repository branch: makepkg
Windowing system distributor 'The X.Org Foundation', version 11.0.12101018
System Description: Arch Linux

Configured using:
 'configure
 'CPPFLAGS=-I/run/user/1000/build/emacs-git/src/mps-git/build/include '
 'LDFLAGS=-L/run/user/1000/build/emacs-git/src/mps-git/build/lib -Wl,-O1
 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now
 -Wl,-z,pack-relative-relocs -flto=auto' --prefix=/usr --sysconfdir=/etc
 --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man
 --with-gameuser=:games --with-modules --without-m17n-flt
 --without-selinux --without-pop --without-gconf --disable-gc-mark-trace
 --with-mps=yes --enable-link-time-optimization
 --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no
 --without-toolkit-scroll-bars --without-xaw3d --without-gsettings
 --with-cairo-xcb --without-xft --with-sound=no --with-tree-sitter
 --without-gpm --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=native -mtune=native -O3 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -fomit-frame-pointer
 -fno-math-errno -fno-trapping-math -fno-math-errno -fno-trapping-math
 -flto=auto''

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

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

Major mode: Elisp/l

Minor modes in effect:
  hexl-follow-ascii: t
  windmove-mode: t
  rainbow-mode: t
  rainbow-delimiters-mode: t
  global-atomic-chrome-edit-mode: t
  iwd-agent-mode: t
  i3bar-mode: t
  ednc-mode: t
  exwm-xsettings-mode: t
  exwm-background-mode: t
  exwm-systemtray-mode: t
  exwm-randr-mode: t
  exwm-wm-mode: t
  mlscroll-mode: t
  ligature-mode: t
  stripspace-local-mode: t
  simple-auto-compile-mode: t
  save-place-mode: t
  savehist-mode: t
  global-org-modern-mode: t
  notmuch-bookmarks-mode: t
  goto-address-prog-mode: t
  eat-eshell-mode: t
  bug-reference-prog-mode: t
  magit-todos-mode: t
  nerd-icons-grep-mode: t
  global-git-commit-mode: t
  dired-async-mode: t
  server-mode: t
  llama-fontify-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  ultra-scroll-mode: t
  pixel-scroll-precision-mode: t
  global-hl-todo-mode: t
  hl-todo-mode: t
  marginalia-mode: t
  nerd-icons-completion-mode: t
  global-jinx-mode: t
  visual-replace-global-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  isearch-mb-mode: t
  evil-goggles-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  recentf-mode: t
  editorconfig-mode: t
  page-break-mode: t
  global-auto-revert-mode: t
  minibuffer-depth-indicate-mode: t
  minibuffer-electric-default-mode: t
  evil-mode: t
  evil-local-mode: t
  desktop-environment-mode: t
  elpaca-use-package-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  prettify-symbols-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  column-number-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:
/home/steb/.config/emacs/elpaca/builds/package-lint-flymake/package-lint-flymake hides /home/steb/.config/emacs/elpaca/builds/package-lint/package-lint-flymake
/home/steb/.config/emacs/elpaca/builds/transient/transient hides /usr/share/emacs/31.0.50/lisp/transient
/home/steb/.config/emacs/elpaca/builds/org/ox hides /usr/share/emacs/31.0.50/lisp/org/ox
/home/steb/.config/emacs/elpaca/builds/org/ox-texinfo hides /usr/share/emacs/31.0.50/lisp/org/ox-texinfo
/home/steb/.config/emacs/elpaca/builds/org/ox-publish hides /usr/share/emacs/31.0.50/lisp/org/ox-publish
/home/steb/.config/emacs/elpaca/builds/org/ox-org hides /usr/share/emacs/31.0.50/lisp/org/ox-org
/home/steb/.config/emacs/elpaca/builds/org/ox-odt hides /usr/share/emacs/31.0.50/lisp/org/ox-odt
/home/steb/.config/emacs/elpaca/builds/org/ox-md hides /usr/share/emacs/31.0.50/lisp/org/ox-md
/home/steb/.config/emacs/elpaca/builds/org/ox-man hides /usr/share/emacs/31.0.50/lisp/org/ox-man
/home/steb/.config/emacs/elpaca/builds/org/ox-latex hides /usr/share/emacs/31.0.50/lisp/org/ox-latex
/home/steb/.config/emacs/elpaca/builds/org/ox-koma-letter hides /usr/share/emacs/31.0.50/lisp/org/ox-koma-letter
/home/steb/.config/emacs/elpaca/builds/org/ox-icalendar hides /usr/share/emacs/31.0.50/lisp/org/ox-icalendar
/home/steb/.config/emacs/elpaca/builds/org/ox-html hides /usr/share/emacs/31.0.50/lisp/org/ox-html
/home/steb/.config/emacs/elpaca/builds/org/ox-beamer hides /usr/share/emacs/31.0.50/lisp/org/ox-beamer
/home/steb/.config/emacs/elpaca/builds/org/ox-ascii hides /usr/share/emacs/31.0.50/lisp/org/ox-ascii
/home/steb/.config/emacs/elpaca/builds/org/org hides /usr/share/emacs/31.0.50/lisp/org/org
/home/steb/.config/emacs/elpaca/builds/org/org-version hides /usr/share/emacs/31.0.50/lisp/org/org-version
/home/steb/.config/emacs/elpaca/builds/org/org-timer hides /usr/share/emacs/31.0.50/lisp/org/org-timer
/home/steb/.config/emacs/elpaca/builds/org/org-tempo hides /usr/share/emacs/31.0.50/lisp/org/org-tempo
/home/steb/.config/emacs/elpaca/builds/org/org-table hides /usr/share/emacs/31.0.50/lisp/org/org-table
/home/steb/.config/emacs/elpaca/builds/org/org-src hides /usr/share/emacs/31.0.50/lisp/org/org-src
/home/steb/.config/emacs/elpaca/builds/org/org-refile hides /usr/share/emacs/31.0.50/lisp/org/org-refile
/home/steb/.config/emacs/elpaca/builds/org/org-protocol hides /usr/share/emacs/31.0.50/lisp/org/org-protocol
/home/steb/.config/emacs/elpaca/builds/org/org-plot hides /usr/share/emacs/31.0.50/lisp/org/org-plot
/home/steb/.config/emacs/elpaca/builds/org/org-persist hides /usr/share/emacs/31.0.50/lisp/org/org-persist
/home/steb/.config/emacs/elpaca/builds/org/org-pcomplete hides /usr/share/emacs/31.0.50/lisp/org/org-pcomplete
/home/steb/.config/emacs/elpaca/builds/org/org-num hides /usr/share/emacs/31.0.50/lisp/org/org-num
/home/steb/.config/emacs/elpaca/builds/org/org-mouse hides /usr/share/emacs/31.0.50/lisp/org/org-mouse
/home/steb/.config/emacs/elpaca/builds/org/org-mobile hides /usr/share/emacs/31.0.50/lisp/org/org-mobile
/home/steb/.config/emacs/elpaca/builds/org/org-macs hides /usr/share/emacs/31.0.50/lisp/org/org-macs
/home/steb/.config/emacs/elpaca/builds/org/org-macro hides /usr/share/emacs/31.0.50/lisp/org/org-macro
/home/steb/.config/emacs/elpaca/builds/org/org-loaddefs hides /usr/share/emacs/31.0.50/lisp/org/org-loaddefs
/home/steb/.config/emacs/elpaca/builds/org/org-list hides /usr/share/emacs/31.0.50/lisp/org/org-list
/home/steb/.config/emacs/elpaca/builds/org/org-lint hides /usr/share/emacs/31.0.50/lisp/org/org-lint
/home/steb/.config/emacs/elpaca/builds/org/org-keys hides /usr/share/emacs/31.0.50/lisp/org/org-keys
/home/steb/.config/emacs/elpaca/builds/org/org-inlinetask hides /usr/share/emacs/31.0.50/lisp/org/org-inlinetask
/home/steb/.config/emacs/elpaca/builds/org/org-indent hides /usr/share/emacs/31.0.50/lisp/org/org-indent
/home/steb/.config/emacs/elpaca/builds/org/org-id hides /usr/share/emacs/31.0.50/lisp/org/org-id
/home/steb/.config/emacs/elpaca/builds/org/org-habit hides /usr/share/emacs/31.0.50/lisp/org/org-habit
/home/steb/.config/emacs/elpaca/builds/org/org-goto hides /usr/share/emacs/31.0.50/lisp/org/org-goto
/home/steb/.config/emacs/elpaca/builds/org/org-footnote hides /usr/share/emacs/31.0.50/lisp/org/org-footnote
/home/steb/.config/emacs/elpaca/builds/org/org-fold hides /usr/share/emacs/31.0.50/lisp/org/org-fold
/home/steb/.config/emacs/elpaca/builds/org/org-fold-core hides /usr/share/emacs/31.0.50/lisp/org/org-fold-core
/home/steb/.config/emacs/elpaca/builds/org/org-feed hides /usr/share/emacs/31.0.50/lisp/org/org-feed
/home/steb/.config/emacs/elpaca/builds/org/org-faces hides /usr/share/emacs/31.0.50/lisp/org/org-faces
/home/steb/.config/emacs/elpaca/builds/org/org-entities hides /usr/share/emacs/31.0.50/lisp/org/org-entities
/home/steb/.config/emacs/elpaca/builds/org/org-element hides /usr/share/emacs/31.0.50/lisp/org/org-element
/home/steb/.config/emacs/elpaca/builds/org/org-element-ast hides /usr/share/emacs/31.0.50/lisp/org/org-element-ast
/home/steb/.config/emacs/elpaca/builds/org/org-duration hides /usr/share/emacs/31.0.50/lisp/org/org-duration
/home/steb/.config/emacs/elpaca/builds/org/org-datetree hides /usr/share/emacs/31.0.50/lisp/org/org-datetree
/home/steb/.config/emacs/elpaca/builds/org/org-cycle hides /usr/share/emacs/31.0.50/lisp/org/org-cycle
/home/steb/.config/emacs/elpaca/builds/org/org-ctags hides /usr/share/emacs/31.0.50/lisp/org/org-ctags
/home/steb/.config/emacs/elpaca/builds/org/org-crypt hides /usr/share/emacs/31.0.50/lisp/org/org-crypt
/home/steb/.config/emacs/elpaca/builds/org/org-compat hides /usr/share/emacs/31.0.50/lisp/org/org-compat
/home/steb/.config/emacs/elpaca/builds/org/org-colview hides /usr/share/emacs/31.0.50/lisp/org/org-colview
/home/steb/.config/emacs/elpaca/builds/org/org-clock hides /usr/share/emacs/31.0.50/lisp/org/org-clock
/home/steb/.config/emacs/elpaca/builds/org/org-capture hides /usr/share/emacs/31.0.50/lisp/org/org-capture
/home/steb/.config/emacs/elpaca/builds/org/org-attach hides /usr/share/emacs/31.0.50/lisp/org/org-attach
/home/steb/.config/emacs/elpaca/builds/org/org-attach-git hides /usr/share/emacs/31.0.50/lisp/org/org-attach-git
/home/steb/.config/emacs/elpaca/builds/org/org-archive hides /usr/share/emacs/31.0.50/lisp/org/org-archive
/home/steb/.config/emacs/elpaca/builds/org/org-agenda hides /usr/share/emacs/31.0.50/lisp/org/org-agenda
/home/steb/.config/emacs/elpaca/builds/org/ol hides /usr/share/emacs/31.0.50/lisp/org/ol
/home/steb/.config/emacs/elpaca/builds/org/ol-w3m hides /usr/share/emacs/31.0.50/lisp/org/ol-w3m
/home/steb/.config/emacs/elpaca/builds/org/ol-rmail hides /usr/share/emacs/31.0.50/lisp/org/ol-rmail
/home/steb/.config/emacs/elpaca/builds/org/ol-mhe hides /usr/share/emacs/31.0.50/lisp/org/ol-mhe
/home/steb/.config/emacs/elpaca/builds/org/ol-man hides /usr/share/emacs/31.0.50/lisp/org/ol-man
/home/steb/.config/emacs/elpaca/builds/org/ol-irc hides /usr/share/emacs/31.0.50/lisp/org/ol-irc
/home/steb/.config/emacs/elpaca/builds/org/ol-info hides /usr/share/emacs/31.0.50/lisp/org/ol-info
/home/steb/.config/emacs/elpaca/builds/org/ol-gnus hides /usr/share/emacs/31.0.50/lisp/org/ol-gnus
/home/steb/.config/emacs/elpaca/builds/org/ol-eww hides /usr/share/emacs/31.0.50/lisp/org/ol-eww
/home/steb/.config/emacs/elpaca/builds/org/ol-eshell hides /usr/share/emacs/31.0.50/lisp/org/ol-eshell
/home/steb/.config/emacs/elpaca/builds/org/ol-doi hides /usr/share/emacs/31.0.50/lisp/org/ol-doi
/home/steb/.config/emacs/elpaca/builds/org/ol-docview hides /usr/share/emacs/31.0.50/lisp/org/ol-docview
/home/steb/.config/emacs/elpaca/builds/org/ol-bibtex hides /usr/share/emacs/31.0.50/lisp/org/ol-bibtex
/home/steb/.config/emacs/elpaca/builds/org/ol-bbdb hides /usr/share/emacs/31.0.50/lisp/org/ol-bbdb
/home/steb/.config/emacs/elpaca/builds/org/oc hides /usr/share/emacs/31.0.50/lisp/org/oc
/home/steb/.config/emacs/elpaca/builds/org/oc-natbib hides /usr/share/emacs/31.0.50/lisp/org/oc-natbib
/home/steb/.config/emacs/elpaca/builds/org/oc-csl hides /usr/share/emacs/31.0.50/lisp/org/oc-csl
/home/steb/.config/emacs/elpaca/builds/org/oc-bibtex hides /usr/share/emacs/31.0.50/lisp/org/oc-bibtex
/home/steb/.config/emacs/elpaca/builds/org/oc-biblatex hides /usr/share/emacs/31.0.50/lisp/org/oc-biblatex
/home/steb/.config/emacs/elpaca/builds/org/oc-basic hides /usr/share/emacs/31.0.50/lisp/org/oc-basic
/home/steb/.config/emacs/elpaca/builds/org/ob hides /usr/share/emacs/31.0.50/lisp/org/ob
/home/steb/.config/emacs/elpaca/builds/org/ob-tangle hides /usr/share/emacs/31.0.50/lisp/org/ob-tangle
/home/steb/.config/emacs/elpaca/builds/org/ob-table hides /usr/share/emacs/31.0.50/lisp/org/ob-table
/home/steb/.config/emacs/elpaca/builds/org/ob-sqlite hides /usr/share/emacs/31.0.50/lisp/org/ob-sqlite
/home/steb/.config/emacs/elpaca/builds/org/ob-sql hides /usr/share/emacs/31.0.50/lisp/org/ob-sql
/home/steb/.config/emacs/elpaca/builds/org/ob-shell hides /usr/share/emacs/31.0.50/lisp/org/ob-shell
/home/steb/.config/emacs/elpaca/builds/org/ob-sed hides /usr/share/emacs/31.0.50/lisp/org/ob-sed
/home/steb/.config/emacs/elpaca/builds/org/ob-screen hides /usr/share/emacs/31.0.50/lisp/org/ob-screen
/home/steb/.config/emacs/elpaca/builds/org/ob-scheme hides /usr/share/emacs/31.0.50/lisp/org/ob-scheme
/home/steb/.config/emacs/elpaca/builds/org/ob-sass hides /usr/share/emacs/31.0.50/lisp/org/ob-sass
/home/steb/.config/emacs/elpaca/builds/org/ob-ruby hides /usr/share/emacs/31.0.50/lisp/org/ob-ruby
/home/steb/.config/emacs/elpaca/builds/org/ob-ref hides /usr/share/emacs/31.0.50/lisp/org/ob-ref
/home/steb/.config/emacs/elpaca/builds/org/ob-python hides /usr/share/emacs/31.0.50/lisp/org/ob-python
/home/steb/.config/emacs/elpaca/builds/org/ob-processing hides /usr/share/emacs/31.0.50/lisp/org/ob-processing
/home/steb/.config/emacs/elpaca/builds/org/ob-plantuml hides /usr/share/emacs/31.0.50/lisp/org/ob-plantuml
/home/steb/.config/emacs/elpaca/builds/org/ob-perl hides /usr/share/emacs/31.0.50/lisp/org/ob-perl
/home/steb/.config/emacs/elpaca/builds/org/ob-org hides /usr/share/emacs/31.0.50/lisp/org/ob-org
/home/steb/.config/emacs/elpaca/builds/org/ob-octave hides /usr/share/emacs/31.0.50/lisp/org/ob-octave
/home/steb/.config/emacs/elpaca/builds/org/ob-ocaml hides /usr/share/emacs/31.0.50/lisp/org/ob-ocaml
/home/steb/.config/emacs/elpaca/builds/org/ob-maxima hides /usr/share/emacs/31.0.50/lisp/org/ob-maxima
/home/steb/.config/emacs/elpaca/builds/org/ob-matlab hides /usr/share/emacs/31.0.50/lisp/org/ob-matlab
/home/steb/.config/emacs/elpaca/builds/org/ob-makefile hides /usr/share/emacs/31.0.50/lisp/org/ob-makefile
/home/steb/.config/emacs/elpaca/builds/org/ob-lua hides /usr/share/emacs/31.0.50/lisp/org/ob-lua
/home/steb/.config/emacs/elpaca/builds/org/ob-lob hides /usr/share/emacs/31.0.50/lisp/org/ob-lob
/home/steb/.config/emacs/elpaca/builds/org/ob-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-lisp
/home/steb/.config/emacs/elpaca/builds/org/ob-lilypond hides /usr/share/emacs/31.0.50/lisp/org/ob-lilypond
/home/steb/.config/emacs/elpaca/builds/org/ob-latex hides /usr/share/emacs/31.0.50/lisp/org/ob-latex
/home/steb/.config/emacs/elpaca/builds/org/ob-julia hides /usr/share/emacs/31.0.50/lisp/org/ob-julia
/home/steb/.config/emacs/elpaca/builds/org/ob-js hides /usr/share/emacs/31.0.50/lisp/org/ob-js
/home/steb/.config/emacs/elpaca/builds/org/ob-java hides /usr/share/emacs/31.0.50/lisp/org/ob-java
/home/steb/.config/emacs/elpaca/builds/org/ob-haskell hides /usr/share/emacs/31.0.50/lisp/org/ob-haskell
/home/steb/.config/emacs/elpaca/builds/org/ob-groovy hides /usr/share/emacs/31.0.50/lisp/org/ob-groovy
/home/steb/.config/emacs/elpaca/builds/org/ob-gnuplot hides /usr/share/emacs/31.0.50/lisp/org/ob-gnuplot
/home/steb/.config/emacs/elpaca/builds/org/ob-fortran hides /usr/share/emacs/31.0.50/lisp/org/ob-fortran
/home/steb/.config/emacs/elpaca/builds/org/ob-forth hides /usr/share/emacs/31.0.50/lisp/org/ob-forth
/home/steb/.config/emacs/elpaca/builds/org/ob-exp hides /usr/share/emacs/31.0.50/lisp/org/ob-exp
/home/steb/.config/emacs/elpaca/builds/org/ob-eval hides /usr/share/emacs/31.0.50/lisp/org/ob-eval
/home/steb/.config/emacs/elpaca/builds/org/ob-eshell hides /usr/share/emacs/31.0.50/lisp/org/ob-eshell
/home/steb/.config/emacs/elpaca/builds/org/ob-emacs-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-emacs-lisp
/home/steb/.config/emacs/elpaca/builds/org/ob-dot hides /usr/share/emacs/31.0.50/lisp/org/ob-dot
/home/steb/.config/emacs/elpaca/builds/org/ob-ditaa hides /usr/share/emacs/31.0.50/lisp/org/ob-ditaa
/home/steb/.config/emacs/elpaca/builds/org/ob-css hides /usr/share/emacs/31.0.50/lisp/org/ob-css
/home/steb/.config/emacs/elpaca/builds/org/ob-core hides /usr/share/emacs/31.0.50/lisp/org/ob-core
/home/steb/.config/emacs/elpaca/builds/org/ob-comint hides /usr/share/emacs/31.0.50/lisp/org/ob-comint
/home/steb/.config/emacs/elpaca/builds/org/ob-clojure hides /usr/share/emacs/31.0.50/lisp/org/ob-clojure
/home/steb/.config/emacs/elpaca/builds/org/ob-calc hides /usr/share/emacs/31.0.50/lisp/org/ob-calc
/home/steb/.config/emacs/elpaca/builds/org/ob-awk hides /usr/share/emacs/31.0.50/lisp/org/ob-awk
/home/steb/.config/emacs/elpaca/builds/org/ob-R hides /usr/share/emacs/31.0.50/lisp/org/ob-R
/home/steb/.config/emacs/elpaca/builds/org/ob-C hides /usr/share/emacs/31.0.50/lisp/org/ob-C

Features:
(shadow sort mail-extr emacsbug hexl consult-flymake cape-char cape
consult-org evil-collection-dictionary dictionary dictionary-connection
nerd-icons-dired diredfl dired-filter dired-hacks-utils dired-x
evil-collection-embark embark-org embark-consult embark
evil-collection-eglot eglot external-completion jsonrpc
evil-collection-ert ert ewoc web-mode bash-completion app-launcher
display-line-numbers ffap tabify evil-collection-man man
evil-collection-proced proced eshell-syntax-highlighting em-elecslash
em-ls em-glob em-extpipe em-dirs em-basic em-alias consult-xref
evil-collection-xref xref misearch multi-isearch vc-hg vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs evil-collection-log-view log-view
info-colors evil-collection-helpful helpful cc-langs cc-vars cc-defs
trace evil-collection-edebug edebug evil-collection-debug debug
backtrace info-look evil-collection-info info help-fns radix-tree
evil-collection-elisp-refs elisp-refs checkdoc package-lint-flymake
package-lint evil-collection-finder finder finder-inf lisp-mnt vc
windmove conf-mode mule-util vertico-sort tramp-cmds rainbow-mode
rainbow-delimiters network-stream url-cache evil-collection-vc-git
vc-git vc-dispatcher vertico-repeat evil-collection-consult consult
tramp-cache time-stamp filechooser pinentry
evil-collection-atomic-chrome atomic-chrome websocket bindat iwd
hex-util i3bar ednc exwm-xsettings xcb-xsettings exwm-background
exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm
exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor
xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb
xcb-xproto xcb-types xcb-debug mlscroll visual-fill-column org-contacts
org-capture evil-org-agenda org-agenda gnus-art mm-uu mml2015 gnus-sum
shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win evil-collection-gnus gnus nnheader range
ligature org-appear stripspace flymake-languagetool
evil-collection-flymake flymake oc-basic bibtex ol-man ol-info
ol-docview evil-collection-doc-view doc-view jka-compr
evil-collection-image image-mode exif simple-auto-compile saveplace
savehist show-font org-protocol org-bookmark-heading evil-org org-modern
ob-dot ob-latex ob-python evil-collection-python python ob-gnuplot
ob-calc calc-store calc-trail calc-ext evil-collection-calc calc
calc-loaddefs calc-macs ob-shell edraw-org edraw-util edraw-msg cl-print
org-element org-persist org-id org-refile avl-tree evil-collection-org
org-crypt org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src evil-collection-sh-script sh-script smie treesit executable
ob-comint org-element-ast inline org-pcomplete org-list org-footnote
org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol org-fold org-fold-core org-keys oc org-compat org-version org-macs
notmuch-addr notmuch-bookmarks evil-collection-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print
notmuch-crypto notmuch-mua notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser
notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs
evil-collection-calendar cal-menu calendar cal-loaddefs notmuch-tag
notmuch-lib notmuch-compat mm-view mml-smime smime dig
evil-collection-eat eat term/xterm xterm tramp-sh tramp trampver
tramp-integration tramp-message tramp-compat tramp-loaddefs
evil-collection-term term ehelp evil-collection-forge forge-repos
forge-tablist hl-line forge-topics forge-commands forge-semi
forge-bitbucket forge-gogs forge-gitea forge-gitlab forge-github
forge-forgejo forge-notify forge-revnote forge-pullreq forge-issue
forge-discussion forge-topic yaml parse-time iso8601 eieio-custom
bug-reference magit-bookmark evil-collection-bookmark bookmark
forge-post evil-collection-markdown-mode markdown-mode edit-indirect
evil-collection-outline noutline outline forge-repo forge forge-core
ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth let-alist
gnutls forge-db closql emacsql-sqlite emacsql emacsql-compiler
eieio-base evil-collection-magit-todos magit-todos pcre2el rxt advice
re-builder f s dash nerd-icons-grep evil-collection-grep grep
evil-collection-magit magit-submodule magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote gptel-commit gptel-gh secrets dbus posframe
evil-collection-compile compile xml gptel-ollama evil-collection-gptel
gptel gptel-openai magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit evil-collection-package-menu
package url-handlers evil-collection-magit-repos magit-repos magit-apply
magit-wip magit-log which-func evil-collection-imenu imenu magit-diff
evil-collection-smerge-mode smerge-mode diff diff-mode track-changes
git-commit evil-collection-log-edit log-edit message sendmail yank-media
puny dired-async async dired-aux evil-collection-dired dired
dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa epg rfc6068
epg-config gnus-util time-date 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 magit-margin magit-transient magit-process
evil-collection-with-editor with-editor shell server magit-mode
transient browse-url benchmark magit-git magit-base
evil-collection-magit-section magit-section format-spec cursor-sensor
crm llama yasnippet evil-collection-ultra-scroll ultra-scroll
pixel-scroll cua-base hl-todo marginalia nerd-icons-corfu
nerd-icons-completion nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon jinx visual-replace
evil-collection-which-key which-key vertico-multiform vertico
corfu-popupinfo evil-collection-corfu corfu orderless isearch-mb
evil-goggles pulse face-remap color evil-args evil-surround
evil-collection-tabulated-list evil-collection-tab-bar
evil-collection-simple evil-collection-replace
evil-collection-process-menu evil-collection-kmacro
evil-collection-indent evil-collection-help evil-collection-elisp-mode
evil-collection-eldoc evil-collection-elpaca evil-collection-custom
evil-collection-comint evil-collection-buff-menu evil-collection
annalist ednc-autoloads i3bar-autoloads discomfort-autoloads
debase-autoloads iwd-autoloads bluetooth-autoloads
app-launcher-autoloads atomic-chrome-autoloads websocket-autoloads
pinentry-autoloads playerctl-autoloads exwm-autoloads xelb-autoloads
ol-notmuch-autoloads microdata-autoloads notmuch-addr-autoloads
eshell-syntax-highlighting-autoloads eat-autoloads git-link-autoloads
pr-review-autoloads igist-autoloads magit-todos-autoloads
wgrep-autoloads watch-autoloads tmr-autoloads syncthing-autoloads
pcre2el-autoloads qrencode-autoloads password-store-menu-autoloads
password-store-autoloads named-pipe-autoloads elpher-autoloads
info-colors-autoloads helpful-autoloads elisp-refs-autoloads
devdocs-autoloads whisper-autoloads gptel-commit-autoloads
gptel-autoloads copilot-autoloads journalctl-autoloads
systemctl-autoloads proced-narrow-autoloads show-font-autoloads
dbus-explore-autoloads disk-usage-autoloads dired-filter-autoloads
dired-hacks-utils-autoloads f-autoloads s-autoloads dash-autoloads
diredfl-autoloads org-bookmark-heading-autoloads
notmuch-bookmarks-autoloads pdf-tools-autoloads tablist-autoloads
nov-autoloads esxml-autoloads calibre-autoloads vcard-autoloads
org-contacts-autoloads calfw-autoloads orgit-forge-autoloads
forge-autoloads closql-autoloads emacsql-autoloads ghub-autoloads
treepy-autoloads yaml-autoloads orgit-autoloads magit-autoloads
magit-section-autoloads with-editor-autoloads evil-org-autoloads
org-download-autoloads async-autoloads org-appear-autoloads
org-modern-autoloads org-loaddefs edit-indirect-autoloads
markdown-mode-autoloads web-mode-autoloads wat-ts-mode-autoloads
comint-mime-autoloads mathjax-autoloads flymake-ruff-autoloads
package-lint-flymake-autoloads package-lint-autoloads eff-autoloads
pkgbuild-mode-autoloads gnuplot-autoloads graphviz-dot-mode-autoloads
edraw-autoloads csv-mode-autoloads udev-mode-autoloads systemd-autoloads
ssh-config-mode-autoloads nftables-mode-autoloads git-modes-autoloads
rmsbolt-autoloads rust-playground-autoloads
flymake-languagetool-autoloads consult-eglot-autoloads dape-autoloads
casual-autoloads notmuch-transient-autoloads transient-autoloads
bash-completion-autoloads cape-autoloads yasnippet-autoloads
iwindow-autoloads consult-project-extra-autoloads mlscroll-autoloads
ultra-scroll-autoloads ligature-autoloads hl-todo-autoloads
rainbow-mode-autoloads marginalia-autoloads posframe-autoloads
rainbow-delimiters-autoloads visual-fill-column-autoloads
nerd-icons-grep-autoloads nerd-icons-corfu-autoloads
nerd-icons-ibuffer-autoloads nerd-icons-completion-autoloads
nerd-icons-dired-autoloads nerd-icons-autoloads link-hint-autoloads
avy-autoloads snapshot-timemachine-autoloads stripspace-autoloads
vundo-autoloads jinx-autoloads visual-replace-autoloads
vertico-autoloads corfu-autoloads orderless-autoloads
isearch-mb-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads evil-goggles-autoloads evil-nerd-commenter-autoloads
evil-args-autoloads evil-surround-autoloads evil-collection-autoloads
annalist-autoloads filechooser-autoloads em-prompt text-property-search
em-hist em-unix em-pred esh-mode esh-var eshell esh-cmd generator
esh-ext esh-proc esh-opt esh-io esh-arg pcomplete comint ansi-osc
ansi-color esh-module esh-module-loaddefs esh-util help-at-pt files-x
recentf tree-widget editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch project disp-table
modus-vivendi-theme modus-themes derived pcase autorevert filenotify
mb-depth minibuf-eldef evil evil-integration evil-maps evil-commands
reveal evil-jumps evil-command-window evil-types evil-search evil-ex
evil-macros evil-repeat evil-states evil-core comp-run evil-common
thingatpt rect evil-vars ring edmacro kmacro evil-autoloads
goto-chg-autoloads general general-autoloads llama-autoloads
simple-auto-compile-autoloads mode-local find-func elpaca-menu-elpa
no-littering compat no-littering-autoloads elpaca-menu-melpa
elpaca-menu-org elpaca-use-package use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core elpaca-use-package-autoloads elpaca-log
elpaca-ui url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source
eieio eieio-core cl-macs password-cache json map byte-opt url-vars
mailcap elpaca elpaca-process elpaca-autoloads notmuch-version comp
cl-seq comp-cstr cl-extra help-mode comp-common warnings subr-x rx gv
bytecomp byte-compile xdg cus-edit pp cus-start cus-load icons wid-edit
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 font-render-setting cairo xinput2 x multi-tty
move-toolbar make-network-process tty-child-frames native-compile mps
emacs)

Memory information:
((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0) (vectors 24 0)
 (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0) (buffers 1072 0))