From 06dd5ef70bf50693684b9bdf62bd7f1a281f74e1 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Wed, 27 Nov 2002 23:53:44 +0000 Subject: [PATCH] (file-truename): Canonicalize non-existent names on w32. --- lisp/files.el | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 1a7d54b61a7..5de6559ae51 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -675,18 +675,17 @@ Do not specify them in other calls." ;; it is stored on disk (expanding short name aliases with the full ;; name in the process). (if (eq system-type 'windows-nt) - (let ((handler (find-file-name-handler filename 'file-truename)) - newname) + (let ((handler (find-file-name-handler filename 'file-truename))) ;; For file name that has a special handler, call handler. ;; This is so that ange-ftp can save time by doing a no-op. (if handler (setq filename (funcall handler 'file-truename filename)) ;; If filename contains a wildcard, newname will be the old name. - (if (string-match "[[*?]" filename) - (setq newname filename) - ;; If filename doesn't exist, newname will be nil. - (setq newname (w32-long-file-name filename))) - (setq filename (or newname filename))) + (unless (string-match "[[*?]" filename) + ;; If filename exists, use the long name, otherwise + ;; canonicalize the name, to handle case differences. + (setq filename (or (w32-long-file-name filename) + (untranslated-canonical-name filename))))) (setq done t))) ;; If this file directly leads to a link, process that iteratively -- 2.39.2