mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
Make file-name-split returns driver name as well in Windows
* lisp/files.el (file-name-split): Returns driver name as well in Windows. * lisp/net/browse-url.el (browse-url-file-url): Don't hexify colon character in file path for Windows (bug#54721).
This commit is contained in:
parent
e32dcc7527
commit
7eca680e54
2 changed files with 17 additions and 4 deletions
|
|
@ -5091,7 +5091,11 @@ On most systems, this will be true:
|
||||||
;; If there's nothing left to peel off, we're at the root and
|
;; If there's nothing left to peel off, we're at the root and
|
||||||
;; we can stop.
|
;; we can stop.
|
||||||
(when (and dir (equal dir filename))
|
(when (and dir (equal dir filename))
|
||||||
(push "" components)
|
(push (if (equal dir "") ""
|
||||||
|
;; On Windows, the first component might be "c:" or
|
||||||
|
;; the like.
|
||||||
|
(substring dir 0 -1))
|
||||||
|
components)
|
||||||
(setq filename nil))))
|
(setq filename nil))))
|
||||||
components))
|
components))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -728,9 +728,18 @@ Use variable `browse-url-filename-alist' to map filenames to URLs."
|
||||||
browse-url-filename-alist))
|
browse-url-filename-alist))
|
||||||
(setq file (browse-url-url-encode-chars file "[*\"()',=;?% ]"))
|
(setq file (browse-url-url-encode-chars file "[*\"()',=;?% ]"))
|
||||||
;; Encode all other file names properly.
|
;; Encode all other file names properly.
|
||||||
(setq file (mapconcat #'url-hexify-string
|
(let ((bits (file-name-split file)))
|
||||||
(file-name-split file)
|
(setq file
|
||||||
"/")))
|
(string-join
|
||||||
|
;; On Windows, the first bit here might be "c:" or the
|
||||||
|
;; like, so don't encode the ":" in the first bit.
|
||||||
|
(cons (let ((url-unreserved-chars
|
||||||
|
(if (file-name-absolute-p file)
|
||||||
|
(cons ?: url-unreserved-chars)
|
||||||
|
url-unreserved-chars)))
|
||||||
|
(url-hexify-string (car bits)))
|
||||||
|
(mapcar #'url-hexify-string (cdr bits)))
|
||||||
|
"/"))))
|
||||||
(dolist (map browse-url-filename-alist)
|
(dolist (map browse-url-filename-alist)
|
||||||
(when (and map (string-match (car map) file))
|
(when (and map (string-match (car map) file))
|
||||||
(setq file (replace-match (cdr map) t nil file))))
|
(setq file (replace-match (cdr map) t nil file))))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue