diff lisp/startup.el @ 1558:a7e915481db1

* startup.el (normal-top-level): Don't worry about setting default-directory to PWD if PWD is shorter. And, if PWD isn't accurate, delete it.
author Jim Blandy <jimb@redhat.com>
date Sat, 07 Nov 1992 06:20:15 +0000
parents 279b5a572def
children 844e027dc6db
line wrap: on
line diff
--- a/lisp/startup.el	Sat Nov 07 06:17:04 1992 +0000
+++ b/lisp/startup.el	Sat Nov 07 06:20:15 1992 +0000
@@ -126,18 +126,21 @@
   (if command-line-processed
       (message "Back to top level.")
     (setq command-line-processed t)
-    ;; In presence of symlinks, switch to cleaner form of default directory.
     (if (not (eq system-type 'vax-vms))
-	(mapcar (function
-		 (lambda (var)
-		   (let ((value (getenv var)))
-		     (if (and value
-			      (< (length value) (length default-directory))
-			      (equal (file-attributes default-directory)
-				     (file-attributes value)))
-			 (setq default-directory
-			       (file-name-as-directory value))))))
-		'("PWD" "HOME")))
+	(progn
+	  ;; If the PWD environment variable isn't accurate, delete it.
+	  (let ((pwd (getenv "PWD")))
+	    (and (stringp pwd)
+		 ;; Use FOO/., so that if FOO is a symlink, file-attributes
+		 ;; describes the directory linked to, not FOO itself.
+		 (or (equal (file-attributes
+			     (concat (file-name-as-directory pwd) "."))
+			    (file-attributes
+			     (concat (file-name-as-directory default-directory)
+				     ".")))
+		     (setq process-environment
+			   (delete (concat "PWD=" pwd)
+				   process-environment)))))))
     (setq default-directory (abbreviate-file-name default-directory))
     (unwind-protect
 	(command-line)