@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/os
@node System Interface, Antinews, Calendar, Top
@enumerate
@item
-It adds subdirectories to @code{load-path}, by running the file
-named @file{subdirs.el} in each directory that is listed.
+It adds subdirectories to @code{load-path}, by running the file named
+@file{subdirs.el} in each directory in the list. Normally this file
+adds the directory's subdirectories to the list, and these will be
+scanned in their turn. The files @file{subdirs.el} are normally
+generated automatically by Emacs installation.
@item
It sets the language environment and the terminal coding system,
It processes the action arguments from the command line.
@item
-It runs @code{term-setup-hook}.
+It runs @code{emacs-startup-hook} and then @code{term-setup-hook}.
@item
It calls @code{frame-notice-user-settings}, which modifies the
@defvar after-init-hook
This normal hook is run, once, just after loading all the init files
(the user's init file, @file{default.el}, and/or @file{site-start.el}),
-before the terminal-specific initialization.
+before loading the terminal-specific library and processing the
+command-line arguments.
+@end defvar
+
+@defvar emacs-startup-hook
+@tindex emacs-startup-hook
+This normal hook is run, once, just after handling the command line
+arguments, just before @code{term-setup-hook}.
+@end defvar
+
+@defvar user-init-file
+@tindex user-init-file
+This variable holds the file name of the user's init file. If the
+actual init file loaded is a compiled file, such as @file{.emacs.elc},
+the value refers to the corresponding source file.
@end defvar
@node Terminal-Specific
and MS-Windows.
@end defvar
+@defun parse-colon-path path
+@tindex parse-colon-path
+This function takes a search path string such as would be the value of
+the @code{PATH} environment variable, and splits it at the separators,
+returning a list of directory names. @code{nil} in this list stands for
+``use the current directory.'' Although the function's name says
+``colon,'' it actually uses the value of @code{path-separator}.
+
+@example
+(parse-colon-path ":/foo:/bar")
+ @result{} (nil "/foo/" "/bar/")
+@end example
+@end defun
+
@defvar invocation-name
This variable holds the program name under which Emacs was invoked. The
value is a string, and does not include a directory name.
@end defun
@defvar tty-erase-char
-@tindex tty-erase-char
This variable holds the erase character that was selected
in the system's terminal driver, before Emacs was started.
@end defvar
integers: @code{(@var{high} @var{low} @var{microsec})}. The integers
@var{high} and @var{low} combine to give the number of seconds since
0:00 January 1, 1970 (local time), which is
-@ifinfo
+@ifnottex
@var{high} * 2**16 + @var{low}.
-@end ifinfo
+@end ifnottex
@tex
$high*2^{16}+low$.
@end tex
If @var{universal} is non-@code{nil}, that means to describe the time as
Universal Time; @code{nil} means describe it using what Emacs believes
is the local time zone (see @code{current-time-zone}).
+
+This function uses the C library function @code{strftime} to do most of
+the work. In order to communicate with that function, it first encodes
+its argument using the coding system specified by
+@code{locale-coding-system} (@pxref{Locales}); after @code{strftime}
+returns the resulting string, @code{format-time-string} decodes the
+string using that same coding system.
@end defun
@defun decode-time time
@var{dow} and @var{zone}.
@end defun
-@defun encode-time seconds minutes hour day month year &optional @dots{}zone
+@defun encode-time seconds minutes hour day month year &optional zone
This function is the inverse of @code{decode-time}. It converts seven
items of calendrical data into a time value. For the meanings of the
arguments, see the table above under @code{decode-time}.
Year numbers less than 100 are not treated specially. If you want them
-to stand for years above 1900, you must alter them yourself before you
-call @code{encode-time}.
+to stand for years above 1900, or years above 2000, you must alter them
+yourself before you call @code{encode-time}.
The optional argument @var{zone} defaults to the current time zone and
its daylight savings time rules. If specified, it can be either a list
If the file name is not absolute, it is expanded against
the directory @code{data-directory}.
+@item :data @var{data}
+This specifies the sound to play without need to refer to a file. The
+value, @var{data}, should be a string containing the same bytes as a
+sound file. We recommend using a unibyte string.
+
@item :volume @var{volume}
This specifies how loud to play the sound. It should be a number in the
range of 0 to 1. The default is to use whatever volume has been
system-specific keysym. Each element has the form @code{(@var{code}
. @var{symbol})}, where @var{code} is the numeric keysym code (not
including the ``vendor specific'' bit,
-@ifinfo
+@ifnottex
-2**28),
-@end ifinfo
+@end ifnottex
@tex
$-2^{28}$),
@end tex
For example @code{(168 . mute-acute)} defines a system-specific key (used
by HP X servers) whose numeric code is
-@ifinfo
+@ifnottex
-2**28
-@end ifinfo
+@end ifnottex
@tex
$-2^{28}$
@end tex