C.5.3 The MS-Windows System Registry
On MS-Windows, the installation program addpm.exe adds values
for emacs_dir, EMACSLOADPATH, EMACSDATA,
EMACSPATH, EMACSDOC, SHELL and TERM to the
HKEY_LOCAL_MACHINE section of the system registry, under
/Software/GNU/Emacs. It does this because there is no standard
place to set environment variables across different versions of
Windows. Running addpm.exe is no longer strictly
necessary in recent versions of Emacs, but if you are upgrading from
an older version, running addpm.exe ensures that you do not have
older registry entries from a previous installation, which may not be
compatible with the latest version of Emacs.
When Emacs starts, as well as checking the environment, it also checks
the System Registry for those variables and for HOME, LANG
and PRELOAD_WINSOCK.
To determine the value of those variables, Emacs goes through the
following procedure. First, the environment is checked. If the
variable is not found there, Emacs looks for registry keys by that
name under /Software/GNU/Emacs; first in the
HKEY_CURRENT_USER section of the registry, and if not found
there, in the HKEY_LOCAL_MACHINE section. Finally, if Emacs
still cannot determine the values, compiled-in defaults are used.
In addition to the environment variables above, you can also add many
of the settings which on X belong in the .Xdefaults file
(see X Resources) to the /Software/GNU/Emacs registry key.
Settings you add to the HKEY_LOCAL_MACHINE section will affect
all users of the machine. Settings you add to the
HKEY_CURRENT_USER section will only affect you, and will
override machine wide settings.