(defun setenv (variable &optional value unset 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.
+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
the environment. Otherwise, value is a string.
If optional parameter FRAME is non-nil, then it should be a
-frame. If the specified terminal device has its own set of
-environment variables, this function will look up VARIABLE in it.
+frame. If that frame has its own set of environment variables,
+this function will look up VARIABLE in there.
Otherwise, this function searches `process-environment' for
-VARIABLE. If it was not found there, then it continues the
+VARIABLE. If it is not found there, then it continues the
search in either `global-environment' or the environment list of
the selected frame, depending on the value of
`local-environment-variables'."
will look up VARIABLE in there.
Otherwise, this function searches `process-environment' for VARIABLE.
-If it was not found there, then it continues the search in either
-`global-environment' or the local environment list of the current
-frame, depending on the value of `local-environment-variables'. */)
+If it is not found there, then it continues the search in either
+`global-environment' or the environment list of the selected frame,
+depending on the value of `local-environment-variables'. */)
(variable, frame)
Lisp_Object variable, frame;
{
Some frames may have their own local list of environment variables in
their 'environment parameter, which may override this global list; see
-`local-environment-variables'. See `process-environment' for a way to
-modify an environment variable on all frames.
+`local-environment-variables' and `frame-with-environment'. See
+`process-environment' for a way to modify an environment variable on
+all frames.
If multiple entries define the same variable, the first one always
takes precedence.
Each element should be a string of the form ENVVARNAME=VALUE.
Entries in this list take precedence to those in `global-environment'
-or the frame-local environment. (See `local-environment-variables'.)
-Therefore, let-binding `process-environment' is an easy way to
-temporarily change the value of an environment variable, irrespective
-of where it comes from. To use `process-environment' to remove an
-environment variable, include only its name in the list, without
-"=VALUE".
+or the frame-local environments. (See `local-environment-variables'
+and `frame-with-environment'.) Therefore, let-binding
+`process-environment' is an easy way to temporarily change the value
+of an environment variable, irrespective of where it comes from. To
+use `process-environment' to remove an environment variable, include
+only its name in the list, without "=VALUE".
This variable is set to nil when Emacs starts.
Otherwise, `local-environment-variables' should be a list of variable
names (represented by Lisp strings) to look up in the frame's
-environment. The rest will come from `global-environment'. */);
+environment. The rest will come from `global-environment'.
+
+The frame-local environment is stored in the 'environment frame
+parameter. See `frame-with-environment'. */);
Vlocal_environment_variables = Qnil;
}