worley@compass.com (Dale Worley) (05/06/91)
(setq mail-archive-file-name "$HOME/SMAIL.tmp") There are two ways. The first is to use the function getenv: getenv: Return the value of environment variable VAR, as a string. When invoked interactively, print the value in the echo area. VAR is a string, the name of the variable, or the symbol t, meaning to return an alist representing the current environment. However, getenv is available only if MAINTAIN_ENVIRONMENT is set in config.h, at least in Emacs 18.53. Probably the better way is to use expand-file-name or substitute-in-file-name: expand-file-name: Convert FILENAME to absolute, and canonicalize it. Second arg DEFAULT is directory to start with if FILENAME is relative (does not start with slash); if DEFAULT is nil or missing, the current buffer's value of default-directory is used. Filenames containing . or .. as components are simplified; initial ~ is expanded. See also the function substitute-in-file-name. substitute-in-file-name: Substitute environment variables referred to in STRING. A $ begins a request to substitute; the env variable name is the alphanumeric characters and underscores after the $, or is surrounded by braces. If a ~ appears following a /, everything through that / is discarded. On VMS, $ substitution is not done; this function does little and only duplicates what expand-file-name does. Both of them will expand an initial "~" to your home directory; substitute-in-file-name will expand $HOME. Dale Dale Worley Compass, Inc. worley@compass.com -- The perfect computer has been developed. You just feed in your problems and they never come out again.