diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/startup.el | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/startup.el b/lisp/startup.el index 9d16b59defd..33f8ca63f8d 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -552,9 +552,17 @@ It is the default value of the variable `top-level'." (if default-directory (setq default-directory (if (eq system-type 'windows-nt) - ;; Convert backslashes to forward slashes. - (expand-file-name - (decode-coding-string default-directory coding t)) + ;; We pass the decoded default-directory as + ;; the 2nd arg to expand-file-name to make + ;; sure it sees a multibyte string as the + ;; default directory; this avoids the side + ;; effect of returning a unibyte string from + ;; expand-file-name because it still sees + ;; the undecoded value of default-directory. + (let ((defdir (decode-coding-string default-directory + coding t))) + ;; Convert backslashes to forward slashes. + (expand-file-name defdir defdir)) (decode-coding-string default-directory coding t)))))) ;; Decode all the important variables and directory lists, now |