start (+ (match-beginning 0) 1)))))
string))
-;; Fixme: Should `process-environment' be recoded if LC_CTYPE &c is set?
+;; Fixme: Should the environment be recoded if LC_CTYPE &c is set?
- (defun setenv (variable &optional value unset substitute-env-vars frame)
-(defun setenv (variable &optional value substitute-env-vars)
++(defun setenv (variable &optional value substitute-env-vars frame)
"Set the value of the environment variable named VARIABLE to VALUE.
VARIABLE should be a string. VALUE is optional; if not provided or
nil, the environment variable VARIABLE will be removed.
- UNSET if non-nil means to remove VARIABLE from the environment.
- SUBSTITUTE-ENV-VARS, if non-nil, means to substitute environment
- variables in VALUE with `substitute-env-vars', where see.
- Value is the new value if VARIABLE, or nil if removed from the
- environment.
-Interactively, a prefix argument means to unset the variable.
-Interactively, the current value (if any) of the variable
-appears at the front of the history list when you type in the new value.
-Interactively, always replace environment variables in the new value.
+Interactively, a prefix argument means to unset the variable, and
+otherwise the current value (if any) of the variable appears at
+the front of the history list when you type in the new value.
+This function always replaces environment variables in the new
+value when called interactively.
+
+If VARIABLE is set in `process-environment', then this function
+modifies its value there. Otherwise, this function works by
+modifying either `global-environment' or the environment
+belonging to the selected frame, depending on the value of
+`local-environment-variables'.
-This function works by modifying `process-environment'.
+ SUBSTITUTE-ENV-VARS, if non-nil, means to substitute environment
+ variables in VALUE with `substitute-env-vars', which see.
+ This is normally used only for interactive calls.
+
+ The return value is the new value of VARIABLE, or nil if
+ it was removed from the environment.
+
+If optional parameter FRAME is non-nil, then it should be a a
+frame. If the specified frame has its own set of environment
+variables, this function will modify VARIABLE in it. Note that
+frames on the same terminal device usually share their
+environment, so calling `setenv' on one of them affects the
+others as well.
As a special case, setting variable `TZ' calls `set-time-zone-rule' as
a side-effect."