changeset 45098:06120f91eb06

(eshell-modify-global-environment): Added this customization variable, which will cause any "export" commands within any eshell buffer to modify the global Emacs environment. It defaults to nil, which means that such commands will only modify that Eshell buffer's environment. (eshell-var-initialize): Initialize `eshell-modify-global-environment'.
author John Wiegley <johnw@newartisans.com>
date Fri, 03 May 2002 20:43:53 +0000
parents b71c3c733b9a
children 8a33d836b6fb
files lisp/eshell/esh-var.el
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/eshell/esh-var.el	Fri May 03 20:43:36 2002 +0000
+++ b/lisp/eshell/esh-var.el	Fri May 03 20:43:53 2002 +0000
@@ -137,6 +137,11 @@
   :type 'boolean
   :group 'eshell-var)
 
+(defcustom eshell-modify-global-environment nil
+  "*If non-nil, using `export' changes Emacs's global environment."
+  :type 'boolean
+  :group 'eshell-var)
+
 (defcustom eshell-variable-name-regexp "[A-Za-z0-9_-]+"
   "*A regexp identifying what constitutes a variable name reference.
 Note that this only applies for '$NAME'.  If the syntax '$<NAME>' is
@@ -199,7 +204,9 @@
   "Initialize the variable handle code."
   ;; Break the association with our parent's environment.  Otherwise,
   ;; changing a variable will affect all of Emacs.
-  (set (make-local-variable 'process-environment) (eshell-copy-environment))
+  (unless eshell-modify-global-environment
+    (set (make-local-variable 'process-environment)
+	 (eshell-copy-environment)))
 
   (define-key eshell-command-map [(meta ?v)] 'eshell-insert-envvar)