Package: emacs;
Reported by: Morgan Willcock <morgan <at> ice9.digital>
Date: Wed, 12 Mar 2025 17:54:02 UTC
Severity: normal
Tags: patch
Found in version 30.1
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76982 in the body.
You can then email your comments to 76982 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Wed, 12 Mar 2025 17:54:02 GMT) Full text and rfc822 format available.Morgan Willcock <morgan <at> ice9.digital>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 12 Mar 2025 17:54:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Morgan Willcock <morgan <at> ice9.digital> To: bug-gnu-emacs <at> gnu.org Subject: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Wed, 12 Mar 2025 17:53:30 +0000
(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))
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Wed, 12 Mar 2025 19:24:01 GMT) Full text and rfc822 format available.Message #8 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: Morgan Willcock <morgan <at> ice9.digital> Cc: 76982 <at> debbugs.gnu.org Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Wed, 12 Mar 2025 15:23:08 -0400
[Message part 1 (text/plain, inline)]
Morgan Willcock <morgan <at> ice9.digital> writes: > (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 Attached a potential patch.
[0001-url-parse.el-Parsing-exceptions-for-Windows-paths-bu.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
-- Sebastián Monía https://site.sebasmonia.com/
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Thu, 13 Mar 2025 08:21:02 GMT) Full text and rfc822 format available.Message #11 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Sebastián Monía <sebastian <at> sebasmonia.com> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Thu, 13 Mar 2025 10:20:41 +0200
> Cc: 76982 <at> debbugs.gnu.org > From: Sebastián Monía > <sebastian <at> sebasmonia.com> > Date: Wed, 12 Mar 2025 15:23:08 -0400 > > Morgan Willcock <morgan <at> ice9.digital> writes: > > > (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 > > Attached a potential patch. Thanks. > >From 25c0cbeb1523e3fed3d3409465b6dcc99c967a38 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Sebasti=C3=A1n=20Mon=C3=ADa?= > <sebastian.monia <at> sebasmonia.com> > Date: Wed, 12 Mar 2025 15:16:19 -0400 > Subject: [PATCH] url-parse.el: Parsing exceptions for Windows paths > (bug#76982) Please add a ChangeLog-style list of functions that are modified and a short description of each modification. > > --- > lisp/url/url-parse.el | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el > index 4c65721b83d..1dff66c6228 100644 > --- a/lisp/url/url-parse.el > +++ b/lisp/url/url-parse.el > @@ -83,7 +83,12 @@ url-recreate-url > ;; port is empty or if its value would be the same as that of > ;; the scheme's default." > (port (url-port-if-non-default urlobj)) > - (file (url-filename urlobj)) > + ;; For Windows/DOS-like paths, `url-generic-parse-url' strips > + ;; the leading /, so we need to add it back (bug#76982) > + (file (if (and (string= "file" type) > + (string-match "^[A-Za-z]:[/\\]" (url-filename urlobj))) > + (concat "/" (url-filename urlobj)) > + (url-filename urlobj))) > (frag (url-target urlobj))) > (concat (if type (concat type ":")) > (if (url-fullness urlobj) "//") OK. > @@ -210,6 +215,13 @@ url-generic-parse-url > > (if (and host (string-match "%[0-9][0-9]" host)) > (setq host (url-unhex-string host))) > + > + ;; For file:// URIs, if the path "looks like" Windows/DOS, it > + ;; makes sense to strip the leading slash (bug#76982) > + (when (and (string= "file" scheme) > + (string-match "^/[A-Za-z]:[/\\]" file)) > + (setq file (substring file 1))) > + > (url-parse-make-urlobj scheme user pass host port file > fragment nil full)))))) Isn't it cleaner to go one more character forward here: ;; 3.2. Authority (when (looking-at "//") (setq full t) (forward-char 2) <<<<<<<<<<<<<<<<<<<< (setq save-pos (point)) (skip-chars-forward "^/?#") if the conditions for Windows-style absolute file name are fulfilled? Also, could we please have some simple tests for this?
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Sat, 29 Mar 2025 11:17:02 GMT) Full text and rfc822 format available.Message #14 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: sebastian <at> sebasmonia.com Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Sat, 29 Mar 2025 14:16:13 +0300
Ping! Sebastián, would you like to submit an updated patch which addresses my comments? > Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital > Date: Thu, 13 Mar 2025 10:20:41 +0200 > From: Eli Zaretskii <eliz <at> gnu.org> > > > Cc: 76982 <at> debbugs.gnu.org > > From: Sebastián Monía > > <sebastian <at> sebasmonia.com> > > Date: Wed, 12 Mar 2025 15:23:08 -0400 > > > > Morgan Willcock <morgan <at> ice9.digital> writes: > > > > > (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 > > > > Attached a potential patch. > > Thanks. > > > >From 25c0cbeb1523e3fed3d3409465b6dcc99c967a38 Mon Sep 17 00:00:00 2001 > > From: =?UTF-8?q?Sebasti=C3=A1n=20Mon=C3=ADa?= > > <sebastian.monia <at> sebasmonia.com> > > Date: Wed, 12 Mar 2025 15:16:19 -0400 > > Subject: [PATCH] url-parse.el: Parsing exceptions for Windows paths > > (bug#76982) > > Please add a ChangeLog-style list of functions that are modified and a > short description of each modification. > > > > > --- > > lisp/url/url-parse.el | 14 +++++++++++++- > > 1 file changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el > > index 4c65721b83d..1dff66c6228 100644 > > --- a/lisp/url/url-parse.el > > +++ b/lisp/url/url-parse.el > > @@ -83,7 +83,12 @@ url-recreate-url > > ;; port is empty or if its value would be the same as that of > > ;; the scheme's default." > > (port (url-port-if-non-default urlobj)) > > - (file (url-filename urlobj)) > > + ;; For Windows/DOS-like paths, `url-generic-parse-url' strips > > + ;; the leading /, so we need to add it back (bug#76982) > > + (file (if (and (string= "file" type) > > + (string-match "^[A-Za-z]:[/\\]" (url-filename urlobj))) > > + (concat "/" (url-filename urlobj)) > > + (url-filename urlobj))) > > (frag (url-target urlobj))) > > (concat (if type (concat type ":")) > > (if (url-fullness urlobj) "//") > > OK. > > > @@ -210,6 +215,13 @@ url-generic-parse-url > > > > (if (and host (string-match "%[0-9][0-9]" host)) > > (setq host (url-unhex-string host))) > > + > > + ;; For file:// URIs, if the path "looks like" Windows/DOS, it > > + ;; makes sense to strip the leading slash (bug#76982) > > + (when (and (string= "file" scheme) > > + (string-match "^/[A-Za-z]:[/\\]" file)) > > + (setq file (substring file 1))) > > + > > (url-parse-make-urlobj scheme user pass host port file > > fragment nil full)))))) > > Isn't it cleaner to go one more character forward here: > > ;; 3.2. Authority > (when (looking-at "//") > (setq full t) > (forward-char 2) <<<<<<<<<<<<<<<<<<<< > (setq save-pos (point)) > (skip-chars-forward "^/?#") > > if the conditions for Windows-style absolute file name are fulfilled? > > Also, could we please have some simple tests for this? > > > >
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Sat, 29 Mar 2025 12:08:02 GMT) Full text and rfc822 format available.Message #17 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: "Eli Zaretskii" <eliz <at> gnu.org> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Sat, 29 Mar 2025 08:07:00 -0400
[Message part 1 (text/plain, inline)]
Hi Eli, I didn’t send an email saying that I would do it last weekend, I thought "nah surely this week I get to it". And here we are :( But yes I will! :) As soon as I get a chance. On Sat, Mar 29, 2025, at 7:16 AM, Eli Zaretskii wrote: > Ping! Sebastián, would you like to submit an updated patch which > addresses my comments? > > > Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital > > Date: Thu, 13 Mar 2025 10:20:41 +0200 > > From: Eli Zaretskii <eliz <at> gnu.org> > > > > > Cc: 76982 <at> debbugs.gnu.org > > > From: Sebastián Monía > > > <sebastian <at> sebasmonia.com> > > > Date: Wed, 12 Mar 2025 15:23:08 -0400 > > > > > > Morgan Willcock <morgan <at> ice9.digital> writes: > > > > > > > (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 > > > > > > Attached a potential patch. > > > > Thanks. > > > > > >From 25c0cbeb1523e3fed3d3409465b6dcc99c967a38 Mon Sep 17 00:00:00 2001 > > > From: =?UTF-8?q?Sebasti=C3=A1n=20Mon=C3=ADa?= > > > <sebastian.monia <at> sebasmonia.com> > > > Date: Wed, 12 Mar 2025 15:16:19 -0400 > > > Subject: [PATCH] url-parse.el: Parsing exceptions for Windows paths > > > (bug#76982) > > > > Please add a ChangeLog-style list of functions that are modified and a > > short description of each modification. > > > > > > > > --- > > > lisp/url/url-parse.el | 14 +++++++++++++- > > > 1 file changed, 13 insertions(+), 1 deletion(-) > > > > > > diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el > > > index 4c65721b83d..1dff66c6228 100644 > > > --- a/lisp/url/url-parse.el > > > +++ b/lisp/url/url-parse.el > > > @@ -83,7 +83,12 @@ url-recreate-url > > > ;; port is empty or if its value would be the same as that of > > > ;; the scheme's default." > > > (port (url-port-if-non-default urlobj)) > > > - (file (url-filename urlobj)) > > > + ;; For Windows/DOS-like paths, `url-generic-parse-url' strips > > > + ;; the leading /, so we need to add it back (bug#76982) > > > + (file (if (and (string= "file" type) > > > + (string-match "^[A-Za-z]:[/\\]" (url-filename urlobj))) > > > + (concat "/" (url-filename urlobj)) > > > + (url-filename urlobj))) > > > (frag (url-target urlobj))) > > > (concat (if type (concat type ":")) > > > (if (url-fullness urlobj) "//") > > > > OK. > > > > > @@ -210,6 +215,13 @@ url-generic-parse-url > > > > > > (if (and host (string-match "%[0-9][0-9]" host)) > > > (setq host (url-unhex-string host))) > > > + > > > + ;; For file:// URIs, if the path "looks like" Windows/DOS, it > > > + ;; makes sense to strip the leading slash (bug#76982) > > > + (when (and (string= "file" scheme) > > > + (string-match "^/[A-Za-z]:[/\\]" file)) > > > + (setq file (substring file 1))) > > > + > > > (url-parse-make-urlobj scheme user pass host port file > > > fragment nil full)))))) > > > > Isn't it cleaner to go one more character forward here: > > > > ;; 3.2. Authority > > (when (looking-at "//") > > (setq full t) > > (forward-char 2) <<<<<<<<<<<<<<<<<<<< > > (setq save-pos (point)) > > (skip-chars-forward "^/?#") > > > > if the conditions for Windows-style absolute file name are fulfilled? > > > > Also, could we please have some simple tests for this? > > > > > > > > >
[Message part 2 (text/html, inline)]
Stefan Kangas <stefankangas <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Sat, 29 Mar 2025 12:13:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Mon, 07 Apr 2025 04:20:02 GMT) Full text and rfc822 format available.Message #22 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Mon, 07 Apr 2025 00:18:57 -0400
[Message part 1 (text/plain, inline)]
Hello, Attached a new patch, with some tests and updated changelog. Eli Zaretskii <eliz <at> gnu.org> writes: > Ping! Sebastián, would you like to submit an updated patch which > addresses my comments? > >> > @@ -210,6 +215,13 @@ url-generic-parse-url >> > >> > (if (and host (string-match "%[0-9][0-9]" host)) >> > (setq host (url-unhex-string host))) >> > + >> > + ;; For file:// URIs, if the path "looks like" Windows/DOS, it >> > + ;; makes sense to strip the leading slash (bug#76982) >> > + (when (and (string= "file" scheme) >> > + (string-match "^/[A-Za-z]:[/\\]" file)) >> > + (setq file (substring file 1))) >> > + >> > (url-parse-make-urlobj scheme user pass host port file >> > fragment nil full)))))) >> >> Isn't it cleaner to go one more character forward here: >> >> ;; 3.2. Authority >> (when (looking-at "//") >> (setq full t) >> (forward-char 2) <<<<<<<<<<<<<<<<<<<< >> (setq save-pos (point)) >> (skip-chars-forward "^/?#") >> >> if the conditions for Windows-style absolute file name are fulfilled? The URI could potentially have components before we get to the filename, so the look head for "path starts with" isn't as clean. In this patch I still do that check in the same place as in the original. Thank you, Seb
[0001-Special-treatment-for-file-URIs-that-look-like-Windo.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
-- Sebastián Monía https://site.sebasmonia.com/
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Mon, 07 Apr 2025 11:51:01 GMT) Full text and rfc822 format available.Message #25 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Sebastián Monía <sebastian <at> sebasmonia.com> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Mon, 07 Apr 2025 14:50:36 +0300
> From: Sebastián Monía <sebastian <at> sebasmonia.com> > Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital > Date: Mon, 07 Apr 2025 00:18:57 -0400 > > > Eli Zaretskii <eliz <at> gnu.org> writes: > > Ping! Sebastián, would you like to submit an updated patch which > > addresses my comments? > > > >> > @@ -210,6 +215,13 @@ url-generic-parse-url > >> > > >> > (if (and host (string-match "%[0-9][0-9]" host)) > >> > (setq host (url-unhex-string host))) > >> > + > >> > + ;; For file:// URIs, if the path "looks like" Windows/DOS, it > >> > + ;; makes sense to strip the leading slash (bug#76982) > >> > + (when (and (string= "file" scheme) > >> > + (string-match "^/[A-Za-z]:[/\\]" file)) > >> > + (setq file (substring file 1))) > >> > + > >> > (url-parse-make-urlobj scheme user pass host port file > >> > fragment nil full)))))) > >> > >> Isn't it cleaner to go one more character forward here: > >> > >> ;; 3.2. Authority > >> (when (looking-at "//") > >> (setq full t) > >> (forward-char 2) <<<<<<<<<<<<<<<<<<<< > >> (setq save-pos (point)) > >> (skip-chars-forward "^/?#") > >> > >> if the conditions for Windows-style absolute file name are fulfilled? > > The URI could potentially have components before we get to the filename, > so the look head for "path starts with" isn't as clean. It can have other components in file:// URIs? If so, can you show an example? > In this patch I still do that check in the same place as in the > original. 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. Thanks.
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Mon, 07 Apr 2025 15:49:02 GMT) Full text and rfc822 format available.Message #28 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Mon, 07 Apr 2025 11:48:45 -0400
Eli Zaretskii <eliz <at> gnu.org> 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")) > 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. -- Sebastián Monía https://site.sebasmonia.com/
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Tue, 08 Apr 2025 22:15:01 GMT) Full text and rfc822 format available.Message #31 received at 76982 <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: "Eli Zaretskii" <eliz <at> gnu.org> Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Tue, 08 Apr 2025 18:13:57 -0400
[Message part 1 (text/plain, inline)]
Hello! On Mon, Apr 7, 2025, at 11:48 AM, Sebastián Monía wrote: > Eli Zaretskii <eliz <at> gnu.org> 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 -- Sebastián Monía https://site.sebasmonia.com/
[0001-Special-treatment-for-file-URIs-that-look-like-Windo.patch (application/octet-stream, attachment)]
Eli Zaretskii <eliz <at> gnu.org>
:Morgan Willcock <morgan <at> ice9.digital>
:Message #36 received at 76982-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Sebastián Monía <sebastian <at> sebasmonia.com> Cc: morgan <at> ice9.digital, 76982-done <at> debbugs.gnu.org Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Sun, 13 Apr 2025 12:16:19 +0300
> Date: Tue, 08 Apr 2025 18:13:57 -0400 > From: Sebastián Monía <sebastian <at> sebasmonia.com> > Cc: 76982 <at> debbugs.gnu.org, morgan <at> ice9.digital > > On Mon, Apr 7, 2025, at 11:48 AM, Sebastián Monía wrote: > > Eli Zaretskii <eliz <at> gnu.org> 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.
bug-gnu-emacs <at> gnu.org
:bug#76982
; Package emacs
.
(Sun, 13 Apr 2025 21:14:01 GMT) Full text and rfc822 format available.Message #39 received at 76982-done <at> debbugs.gnu.org (full text, mbox):
From: Sebastián Monía <sebastian <at> sebasmonia.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: morgan <at> ice9.digital, 76982-done <at> debbugs.gnu.org Subject: Re: bug#76982: 30.1; url-generic-parse-url cannot parse Windows file paths Date: Sun, 13 Apr 2025 17:13:10 -0400
Eli Zaretskii <eliz <at> gnu.org> writes: > 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. The test correction is ok - I should have re-tested all before sending my last patch 🙃 Thank you! -- Sebastián Monía https://site.sebasmonia.com/
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Mon, 12 May 2025 11:24:15 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.