Commit 31d42b37 authored by Chong Yidong's avatar Chong Yidong
Browse files

(dired-get-filename): Rewrite octal escape character processor

parent 80372fd3
......@@ -1915,17 +1915,11 @@ Otherwise, an error occurs in these cases."
;; Get rid of the mouse-face property that file names have.
(set-text-properties 0 (length file) nil file)
;; Unquote names quoted by ls or by dired-insert-directory.
;; Using read to unquote is much faster than substituting
;; \007 (4 chars) -> ^G (1 char) etc. in a lisp loop.
(setq file
(concat "\""
;; Some ls -b don't escape quotes, argh!
;; This is not needed for GNU ls, though.
(or (dired-string-replace-match
"\\([^\\]\\|\\`\\)\"" file "\\1\\\\\"" nil t)
(while (string-match
"\\(?:[^\\]\\|\\`\\)\\(\\\\[0-7][0-7][0-7]\\)" file)
(setq file (replace-match
(read (concat "\"" (match-string 1 file) "\""))
nil t file 1)))
;; The above `read' will return a unibyte string if FILE
;; contains eight-bit-control/graphic characters.
(if (and enable-multibyte-characters
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment