Subject: bug#76982: closed (Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 13 Apr 2025 09:17:07 +0000

Your bug report

#76982: 30.1; url-generic-parse-url cannot parse Windows file paths

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].

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

Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths
From: Eli Zaretskii <[email-masked]>
To: Sebastián Monía <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sun, 13 Apr 2025 12:16:19 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Tue, 08 Apr 2025 18:13:57 -0400
> From: Sebastián Monía <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> On Mon, Apr 7, 2025, at 11:48 AM, Sebastián Monía wrote:
> > Eli Zaretskii <[email-masked]> writes:
> > > It can have other components in file:// URIs?  If so, can you show an
> > > example?
> > 
> > The URIs can have an "authority" segment, an example from
> > https://www.rfc-editor.org/rfc/rfc8089.html#appendix-B
> > 
> > "file://host.example.com/path/to/file"
> > 
> > And also I just noticed that "localhost" is valid for authority, so I
> > should add a test like this:
> > 
> > (should (equal (url-filename (url-generic-parse-url "file://localhost/c:/path/to/file")) "c:/path/to/file"))
> 
> Added this test.
> 
> > > The problem with your proposal is that the value of 'file' is
> > > incorrect between where it is first set and where you correct it.  Any
> > > code added later that uses 'file' in-between might cause bugs if the
> > > person who adds such code is not aware of this subtlety.  By contrast,
> > > under my suggestion 'file' has the correct value from the get-go.
> > 
> > You are right :) I hadn't considered this. Will revisit the code and see
> > how I can handle things earlier.
> 
> Now the leading / is stripped much closer to where the 'file' variable 
> assignment takes place, and also after the hostname/authority portion. 
> 
> Let me know what you think!
> Seb

Thanks, I installed this on master.  However, I needed to fix one of
the tests, because it failed for me.  Please see my followup changes,
and if you think I fixed the test incorrectly, let's discuss.

For now, I'm closing this bug.

Subject: 30.1; url-generic-parse-url cannot parse Windows file paths
From: Morgan Willcock <[email-masked]>
To: [email-masked]
Date: Wed, 12 Mar 2025 17:53:30 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

  (url-filename (url-generic-parse-url "file:///c:/windows"))
  => "/c:/windows"

  (url-filename (url-generic-parse-url "c:/windows"))
  => "/windows"

This is relevant in functions such as
mml-expand-html-into-multipart-related, where there is a check that the
file exists:

  (when (and (null (url-type parsed))
             (not (zerop (length (url-filename parsed))))
             (file-exists-p (url-filename parsed)))
    ...)

An example of a real world problem is being unable to reliably send HTML
mail when using Windows:

https://github.com/jeremy-compostella/org-msg/issues/122

In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.2, Xaw scroll bars) of 2025-03-02 built on macmini
Windowing system distributor 'The X.Org Foundation', version 11.0.12101016
System Description: Debian GNU/Linux trixie/sid

Configured using:
 'configure --with-native-compilation --with-xml2 --with-x-toolkit=lucid
 --with-tree-sitter --disable-gc-mark-trace'

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

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

Major mode: Fundamental

Minor modes in effect:
  which-key-mode: t
  global-visual-wrap-prefix-mode: t
  display-time-mode: t
  savehist-mode: t
  repeat-mode: t
  recentf-mode: t
  minibuffer-electric-default-mode: t
  minibuffer-depth-indicate-mode: t
  midnight-mode: t
  ido-everywhere: t
  global-hl-line-mode: t
  editorconfig-mode: t
  global-display-fill-column-indicator-mode: t
  global-devil-mode: t
  devil-mode: t
  global-corfu-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: 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
  view-mode: t

Load-path shadows:
/home/mwillcock/.emacs.d/elpa/modus-themes-4.6.0/theme-loaddefs hides /usr/local/share/emacs/30.1/lisp/theme-loaddefs
/home/mwillcock/.emacs.d/elpa/python-0.30/python hides /usr/local/share/emacs/30.1/lisp/progmodes/python
/home/mwillcock/.emacs.d/elpa/eglot-1.18/eglot hides /usr/local/share/emacs/30.1/lisp/progmodes/eglot
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-css hides /usr/local/share/emacs/30.1/lisp/org/ob-css
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-version hides /usr/local/share/emacs/30.1/lisp/org/org-version
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-table hides /usr/local/share/emacs/30.1/lisp/org/ob-table
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-mobile hides /usr/local/share/emacs/30.1/lisp/org/org-mobile
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc-basic hides /usr/local/share/emacs/30.1/lisp/org/oc-basic
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-lint hides /usr/local/share/emacs/30.1/lisp/org/org-lint
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc-csl hides /usr/local/share/emacs/30.1/lisp/org/oc-csl
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc-bibtex hides /usr/local/share/emacs/30.1/lisp/org/oc-bibtex
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-macs hides /usr/local/share/emacs/30.1/lisp/org/org-macs
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-protocol hides /usr/local/share/emacs/30.1/lisp/org/org-protocol
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-forth hides /usr/local/share/emacs/30.1/lisp/org/ob-forth
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-ditaa hides /usr/local/share/emacs/30.1/lisp/org/ob-ditaa
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-compat hides /usr/local/share/emacs/30.1/lisp/org/org-compat
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox hides /usr/local/share/emacs/30.1/lisp/org/ox
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-rmail hides /usr/local/share/emacs/30.1/lisp/org/ol-rmail
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-core hides /usr/local/share/emacs/30.1/lisp/org/ob-core
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-latex hides /usr/local/share/emacs/30.1/lisp/org/ob-latex
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-mouse hides /usr/local/share/emacs/30.1/lisp/org/org-mouse
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-md hides /usr/local/share/emacs/30.1/lisp/org/ox-md
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-sql hides /usr/local/share/emacs/30.1/lisp/org/ob-sql
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-org hides /usr/local/share/emacs/30.1/lisp/org/ob-org
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-table hides /usr/local/share/emacs/30.1/lisp/org/org-table
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-ocaml hides /usr/local/share/emacs/30.1/lisp/org/ob-ocaml
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-clock hides /usr/local/share/emacs/30.1/lisp/org/org-clock
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-feed hides /usr/local/share/emacs/30.1/lisp/org/org-feed
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-refile hides /usr/local/share/emacs/30.1/lisp/org/org-refile
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-ascii hides /usr/local/share/emacs/30.1/lisp/org/ox-ascii
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-icalendar hides /usr/local/share/emacs/30.1/lisp/org/ox-icalendar
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-C hides /usr/local/share/emacs/30.1/lisp/org/ob-C
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-gnuplot hides /usr/local/share/emacs/30.1/lisp/org/ob-gnuplot
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-src hides /usr/local/share/emacs/30.1/lisp/org/org-src
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-clojure hides /usr/local/share/emacs/30.1/lisp/org/ob-clojure
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc hides /usr/local/share/emacs/30.1/lisp/org/oc
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol hides /usr/local/share/emacs/30.1/lisp/org/ol
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-ctags hides /usr/local/share/emacs/30.1/lisp/org/org-ctags
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-perl hides /usr/local/share/emacs/30.1/lisp/org/ob-perl
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-processing hides /usr/local/share/emacs/30.1/lisp/org/ob-processing
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-bbdb hides /usr/local/share/emacs/30.1/lisp/org/ol-bbdb
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-eval hides /usr/local/share/emacs/30.1/lisp/org/ob-eval
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-odt hides /usr/local/share/emacs/30.1/lisp/org/ox-odt
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-bibtex hides /usr/local/share/emacs/30.1/lisp/org/ol-bibtex
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc-biblatex hides /usr/local/share/emacs/30.1/lisp/org/oc-biblatex
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-timer hides /usr/local/share/emacs/30.1/lisp/org/org-timer
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-attach hides /usr/local/share/emacs/30.1/lisp/org/org-attach
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org hides /usr/local/share/emacs/30.1/lisp/org/org
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-fold hides /usr/local/share/emacs/30.1/lisp/org/org-fold
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-comint hides /usr/local/share/emacs/30.1/lisp/org/ob-comint
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-pcomplete hides /usr/local/share/emacs/30.1/lisp/org/org-pcomplete
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-keys hides /usr/local/share/emacs/30.1/lisp/org/org-keys
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-latex hides /usr/local/share/emacs/30.1/lisp/org/ox-latex
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-ruby hides /usr/local/share/emacs/30.1/lisp/org/ob-ruby
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-capture hides /usr/local/share/emacs/30.1/lisp/org/org-capture
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-gnus hides /usr/local/share/emacs/30.1/lisp/org/ol-gnus
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-eshell hides /usr/local/share/emacs/30.1/lisp/org/ob-eshell
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-tempo hides /usr/local/share/emacs/30.1/lisp/org/org-tempo
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-element-ast hides /usr/local/share/emacs/30.1/lisp/org/org-element-ast
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-man hides /usr/local/share/emacs/30.1/lisp/org/ol-man
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-js hides /usr/local/share/emacs/30.1/lisp/org/ob-js
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-plot hides /usr/local/share/emacs/30.1/lisp/org/org-plot
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-attach-git hides /usr/local/share/emacs/30.1/lisp/org/org-attach-git
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-lua hides /usr/local/share/emacs/30.1/lisp/org/ob-lua
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-eww hides /usr/local/share/emacs/30.1/lisp/org/ol-eww
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-fortran hides /usr/local/share/emacs/30.1/lisp/org/ob-fortran
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-screen hides /usr/local/share/emacs/30.1/lisp/org/ob-screen
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-footnote hides /usr/local/share/emacs/30.1/lisp/org/org-footnote
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-loaddefs hides /usr/local/share/emacs/30.1/lisp/org/org-loaddefs
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-julia hides /usr/local/share/emacs/30.1/lisp/org/ob-julia
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-awk hides /usr/local/share/emacs/30.1/lisp/org/ob-awk
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-dot hides /usr/local/share/emacs/30.1/lisp/org/ob-dot
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-emacs-lisp hides /usr/local/share/emacs/30.1/lisp/org/ob-emacs-lisp
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-doi hides /usr/local/share/emacs/30.1/lisp/org/ol-doi
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-faces hides /usr/local/share/emacs/30.1/lisp/org/org-faces
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-macro hides /usr/local/share/emacs/30.1/lisp/org/org-macro
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-fold-core hides /usr/local/share/emacs/30.1/lisp/org/org-fold-core
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-sed hides /usr/local/share/emacs/30.1/lisp/org/ob-sed
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-koma-letter hides /usr/local/share/emacs/30.1/lisp/org/ox-koma-letter
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-entities hides /usr/local/share/emacs/30.1/lisp/org/org-entities
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-sass hides /usr/local/share/emacs/30.1/lisp/org/ob-sass
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-datetree hides /usr/local/share/emacs/30.1/lisp/org/org-datetree
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-haskell hides /usr/local/share/emacs/30.1/lisp/org/ob-haskell
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-man hides /usr/local/share/emacs/30.1/lisp/org/ox-man
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-element hides /usr/local/share/emacs/30.1/lisp/org/org-element
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-lob hides /usr/local/share/emacs/30.1/lisp/org/ob-lob
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-id hides /usr/local/share/emacs/30.1/lisp/org/org-id
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-python hides /usr/local/share/emacs/30.1/lisp/org/ob-python
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-tangle hides /usr/local/share/emacs/30.1/lisp/org/ob-tangle
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-java hides /usr/local/share/emacs/30.1/lisp/org/ob-java
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-crypt hides /usr/local/share/emacs/30.1/lisp/org/org-crypt
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-cycle hides /usr/local/share/emacs/30.1/lisp/org/org-cycle
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-lisp hides /usr/local/share/emacs/30.1/lisp/org/ob-lisp
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-makefile hides /usr/local/share/emacs/30.1/lisp/org/ob-makefile
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-persist hides /usr/local/share/emacs/30.1/lisp/org/org-persist
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob hides /usr/local/share/emacs/30.1/lisp/org/ob
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-shell hides /usr/local/share/emacs/30.1/lisp/org/ob-shell
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-indent hides /usr/local/share/emacs/30.1/lisp/org/org-indent
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-colview hides /usr/local/share/emacs/30.1/lisp/org/org-colview
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-habit hides /usr/local/share/emacs/30.1/lisp/org/org-habit
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-irc hides /usr/local/share/emacs/30.1/lisp/org/ol-irc
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-texinfo hides /usr/local/share/emacs/30.1/lisp/org/ox-texinfo
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-ref hides /usr/local/share/emacs/30.1/lisp/org/ob-ref
/home/mwillcock/.emacs.d/elpa/org-9.7.25/oc-natbib hides /usr/local/share/emacs/30.1/lisp/org/oc-natbib
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-beamer hides /usr/local/share/emacs/30.1/lisp/org/ox-beamer
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-w3m hides /usr/local/share/emacs/30.1/lisp/org/ol-w3m
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-agenda hides /usr/local/share/emacs/30.1/lisp/org/org-agenda
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-duration hides /usr/local/share/emacs/30.1/lisp/org/org-duration
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-octave hides /usr/local/share/emacs/30.1/lisp/org/ob-octave
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-matlab hides /usr/local/share/emacs/30.1/lisp/org/ob-matlab
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-org hides /usr/local/share/emacs/30.1/lisp/org/ox-org
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-goto hides /usr/local/share/emacs/30.1/lisp/org/org-goto
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-plantuml hides /usr/local/share/emacs/30.1/lisp/org/ob-plantuml
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-eshell hides /usr/local/share/emacs/30.1/lisp/org/ol-eshell
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-maxima hides /usr/local/share/emacs/30.1/lisp/org/ob-maxima
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-inlinetask hides /usr/local/share/emacs/30.1/lisp/org/org-inlinetask
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-publish hides /usr/local/share/emacs/30.1/lisp/org/ox-publish
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-num hides /usr/local/share/emacs/30.1/lisp/org/org-num
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-R hides /usr/local/share/emacs/30.1/lisp/org/ob-R
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-lilypond hides /usr/local/share/emacs/30.1/lisp/org/ob-lilypond
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-archive hides /usr/local/share/emacs/30.1/lisp/org/org-archive
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-info hides /usr/local/share/emacs/30.1/lisp/org/ol-info
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-sqlite hides /usr/local/share/emacs/30.1/lisp/org/ob-sqlite
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-docview hides /usr/local/share/emacs/30.1/lisp/org/ol-docview
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ox-html hides /usr/local/share/emacs/30.1/lisp/org/ox-html
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ol-mhe hides /usr/local/share/emacs/30.1/lisp/org/ol-mhe
/home/mwillcock/.emacs.d/elpa/org-9.7.25/org-list hides /usr/local/share/emacs/30.1/lisp/org/org-list
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-groovy hides /usr/local/share/emacs/30.1/lisp/org/ob-groovy
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-exp hides /usr/local/share/emacs/30.1/lisp/org/ob-exp
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-calc hides /usr/local/share/emacs/30.1/lisp/org/ob-calc
/home/mwillcock/.emacs.d/elpa/org-9.7.25/ob-scheme hides /usr/local/share/emacs/30.1/lisp/org/ob-scheme

Features:
(shadow sort ecomplete mail-extr gnus-msg 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 emacsbug switchmail message yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils view compile text-property-search comp-run
comp-common flyspell ispell goto-addr thingatpt init which-key
visual-wrap time vc-git diff-mode track-changes vc-dispatcher shadowfile
savehist repeat tramp-cache time-stamp tramp-sh tramp rx trampver
tramp-integration files-x tramp-message tramp-compat xdg shell pcomplete
comint ansi-osc ring parse-time iso8601 time-date format-spec ansi-color
tramp-loaddefs recentf tree-widget wid-edit minibuf-eldef mb-depth
midnight ido hl-line editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch
display-fill-column-indicator devil use-package-diminish corfu compat
modus-vivendi-theme modus-themes find-func edmacro kmacro pcase
use-package-bind-key bind-key easy-mmode diminish cl-extra help-mode
use-package-core ags-mode-autoloads corfu-autoloads devil-autoloads
diminish-autoloads eglot-autoloads flymake-ansible-lint-autoloads
indent-bars-autoloads inform-mode-autoloads jabber-autoloads
fsm-autoloads kixtart-mode-autoloads lua-mode-autoloads
markdown-mode-autoloads modus-themes-autoloads org-autoloads
org-msg-autoloads htmlize-autoloads package-lint-autoloads
php-mode-autoloads plantuml-mode-autoloads dash-autoloads
powershell-autoloads python-autoloads rainbow-mode-autoloads
renpy-autoloads info sly-autoloads srv-autoloads switchmail-autoloads
wgrep-autoloads yaml-mode-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 icons 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 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 301090 19511) (symbols 48 21713 3) (strings 32 67160 3458)
 (string-bytes 1 2109121) (vectors 16 30052)
 (vector-slots 8 377356 10921) (floats 8 353 1) (intervals 56 942 193)
 (buffers 992 15))