summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog2
-rw-r--r--lisp/files.el7
2 files changed, 8 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a4413bcbf96..03566e96c28 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,7 @@
2009-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
+ * files.el (cd-absolute): Don't abbreviate-file-name (bug#4599).
+
* vc-dispatcher.el (vc-resynch-window): Don't revert a buffer which
has no associated file.
(vc-resynch-buffer): Use vc-dir-buffers.
diff --git a/lisp/files.el b/lisp/files.el
index 3fde2812f0c..a7eac5fb63e 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -648,7 +648,12 @@ Directories are separated by occurrences of `path-separator'
;; Put the name into directory syntax now,
;; because otherwise expand-file-name may give some bad results.
(setq dir (file-name-as-directory dir))
- (setq dir (abbreviate-file-name (expand-file-name dir)))
+ ;; We used to additionally call abbreviate-file-name here, for an
+ ;; unknown reason. Problem is that most buffers are setup
+ ;; without going through cd-absolute and don't call
+ ;; abbreviate-file-name on their default-directory, so the few that
+ ;; do end up using a superficially different directory.
+ (setq dir (expand-file-name dir))
(if (not (file-directory-p dir))
(if (file-exists-p dir)
(error "%s is not a directory" dir)