Tweak previous esh-ext.el change
authorGlenn Morris <rgm@gnu.org>
Mon, 6 Aug 2012 01:23:37 +0000 (18:23 -0700)
committerGlenn Morris <rgm@gnu.org>
Mon, 6 Aug 2012 01:23:37 +0000 (18:23 -0700)
* lisp/eshell/esh-ext.el (eshell/addpath): Use dolist.
Do less getting and setting of environment variables.

lisp/ChangeLog
lisp/eshell/esh-ext.el

index 289fbf4..484a5c5 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-06  Glenn Morris  <rgm@gnu.org>
+
+       * eshell/esh-ext.el (eshell/addpath): Use dolist.
+       Do less getting and setting of environment variables.
+
 2012-08-05  Chong Yidong  <cyd@gnu.org>
 
        * proced.el (proced): Add substitution string to docstring to
index 1702024..c0add04 100644 (file)
@@ -226,21 +226,15 @@ causing the user to wonder if anything's really going on..."
 Adds the given PATH to $PATH.")
    (if args
        (progn
-        (if prepend
-            (setq args (nreverse args)))
-        (while args
-          (setenv "PATH"
-                  (if prepend
-                      (concat (car args) path-separator
-                              (getenv "PATH"))
-                    (concat (getenv "PATH") path-separator
-                            (car args))))
-          (setq args (cdr args)))
-        (setq eshell-path-env (getenv "PATH")))
-     (let ((paths (parse-colon-path (getenv "PATH"))))
-       (while paths
-        (eshell-printn (car paths))
-        (setq paths (cdr paths)))))))
+        (setq eshell-path-env (getenv "PATH"))
+        (dolist (dir (if prepend (nreverse args) args))
+          (setq eshell-path-env
+                (if prepend
+                    (concat dir path-separator eshell-path-env)
+                  (concat eshell-path-env path-separator dir))))
+        (setenv "PATH" eshell-path-env))
+     (dolist (dir (parse-colon-path (getenv "PATH")))
+       (eshell-printn dir)))))
 
 (put 'eshell/addpath 'eshell-no-numeric-conversions t)