]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix egregious thinko in eglot--uri-to-path
authorJoão Távora <joaotavora@gmail.com>
Mon, 9 May 2022 00:17:58 +0000 (01:17 +0100)
committerJoão Távora <joaotavora@gmail.com>
Mon, 9 May 2022 00:18:45 +0000 (01:18 +0100)
One shouldn't unhex the URI before parsing it.  Just consider a
filename with a # character in it.  The character is encoded as C%23,
after unhexing the file name becomes.

  /tmp/C#/Program.cs

Now, parsing this as the URL will fail completely as the # mean
"anchor" in URLs.

* eglot.el (eglot--uri-to-path): Fix thinko.

lisp/progmodes/eglot.el

index 3a33ad3ec2b24b660c49d3fefe4436369bb1ad2e..3e3eb3c543a04af55b8183484b08765ef3d1cd83 100644 (file)
@@ -1440,7 +1440,7 @@ If optional MARKER, return a marker instead"
   (when (keywordp uri) (setq uri (substring (symbol-name uri) 1)))
   (let* ((server (eglot-current-server))
          (remote-prefix (and server (eglot--trampish-p server)))
-         (retval (url-filename (url-generic-parse-url (url-unhex-string uri))))
+         (retval (url-unhex-string (url-filename (url-generic-parse-url uri))))
          ;; Remove the leading "/" for local MS Windows-style paths.
          (normalized (if (and (not remote-prefix)
                               (eq system-type 'windows-nt)