@c -*-texinfo-*-
@c This is part of the XEmacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/os.info
@node System Interface, X-Windows, Processes, Top
@file{site-start.el}.
@cindex @file{site-start.el}
-@item
+@item
It loads the file @file{~/.emacs} unless @samp{-q} was specified on
the command line. (This is not done in @samp{-batch} mode.) The @samp{-u}
option can specify the user name whose home directory should be used
instead of @file{~}.
-@item
+@item
It loads the library @file{default} unless @code{inhibit-default-init}
is non-@code{nil}. (This is not done in @samp{-batch} mode or if
@samp{-q} was specified on the command line.) The library's file name
the buffer @samp{*scratch*} is still current and still in Fundamental
mode.
-@item
+@item
It loads the terminal-specific Lisp file, if any, except when in batch
mode or using a window system.
It displays the initial echo area message, unless you have suppressed
that with @code{inhibit-startup-echo-area-message}.
-@item
+@item
It processes the action arguments from the command line.
-@item
+@item
It runs @code{term-setup-hook}.
@item
parameters of the selected frame according to whatever the init files
specify.
-@item
+@item
It runs @code{window-setup-hook}. @xref{Terminal-Specific}.
-@item
+@item
It displays copyleft, nonwarranty, and basic use information, provided
there were no remaining command line arguments (a few steps above) and
the value of @code{inhibit-startup-message} is @code{nil}.
your @file{.emacs} file: @code{(setq term-file-prefix nil)}.
@end defvar
-@defvar term-setup-hook
+@defvar term-setup-hook
This variable is a normal hook that XEmacs runs after loading your
@file{.emacs} file, the default initialization file (if any) and the
terminal-specific Lisp file.
-@var{option}
@end example
-The elements of the @code{command-switch-alist} look like this:
+The elements of the @code{command-switch-alist} look like this:
@example
(@var{option} . @var{handler-function})
parent process normally resumes control. The low-level primitive for
killing XEmacs is @code{kill-emacs}.
-@defun kill-emacs &optional exit-data
+@deffn Command kill-emacs &optional exit-data
This function exits the XEmacs process and kills it.
If @var{exit-data} is an integer, then it is used as the exit status
If @var{exit-data} is a string, its contents are stuffed into the
terminal input buffer so that the shell (or whatever program next reads
input) can read them.
-@end defun
+@end deffn
All the information in the XEmacs process, aside from files that have
been saved, is lost when the XEmacs is killed. Because killing XEmacs
moving to a different window. Therefore, suspending is not allowed
when XEmacs is an X client.
-@defun suspend-emacs string
+@deffn Command suspend-emacs &optional stuffstring
This function stops XEmacs and returns control to the superior process.
If and when the superior process resumes XEmacs, @code{suspend-emacs}
returns @code{nil} to its caller in Lisp.
-If @var{string} is non-@code{nil}, its characters are sent to be read
-as terminal input by XEmacs's superior shell. The characters in
-@var{string} are not echoed by the superior shell; only the results
-appear.
+If optional arg @var{stuffstring} is non-@code{nil}, its characters are
+sent to be read as terminal input by XEmacs's superior shell. The
+characters in @var{stuffstring} are not echoed by the superior shell;
+only the results appear.
Before suspending, @code{suspend-emacs} runs the normal hook
@code{suspend-hook}. In Emacs version 18, @code{suspend-hook} was not a
Resumed!
@end group
@end smallexample
-@end defun
+@end deffn
@defvar suspend-hook
This variable is a normal hook run before suspending.
@item usg-unix-v
AT&T System V.
-@item vax-vms
-VAX VMS.
-
@item windows-nt
Microsoft windows NT.
XEmacs was dumped. @xref{Building XEmacs}.)
@end defvar
-@defun getenv var
+@deffn Command getenv var &optional interactivep
@cindex environment variable access
This function returns the value of the environment variable @var{var},
as a string. Within XEmacs, the environment variable values are kept in
the Lisp variable @code{process-environment}.
+When invoked interactively, @code{getenv} prints the value in the echo area.
+
@example
@group
(getenv "USER")
HOME=/user/lewis
@end group
@end example
-@end defun
+@end deffn
-@c Emacs 19 feature
-@deffn Command setenv variable value
+@deffn Command setenv variable &optional value unset
This command sets the value of the environment variable named
@var{variable} to @var{value}. Both arguments should be strings. This
function works by modifying @code{process-environment}; binding that
@defvar process-environment
This variable is a list of strings, each describing one environment
-variable. The functions @code{getenv} and @code{setenv} work by means
-of this variable.
+variable. The functions @code{getenv} and @code{setenv} work by
+manipulating this variable.
@smallexample
@group
process-environment
@result{} ("l=/usr/stanford/lib/gnuemacs/lisp"
"PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin"
- "USER=lewis"
+ "USER=lewis"
@end group
@group
- "TERM=ibmapa16"
+ "TERM=ibmapa16"
"SHELL=/bin/csh"
"HOME=/user/lewis")
@end group
system load averages. (The load averages indicate the number of
processes trying to run.)
-When @var{use-floats} is non-@code{nil}, floats will be returned instead
+When @var{use-floats} is non-@code{nil}, floats will be returned instead
of integers. These floats are not multiplied by 100.
@example
If the 5-minute or 15-minute load averages are not available, return a
shortened list, containing only those averages which are available.
-On some systems, this function may require special privileges to run, or
+On some systems, this function may require special privileges to run, or
it may be unimplemented for the particular system type. In that case,
the function will signal an error.
@end defun
This function returns the process @sc{id} of the Emacs process.
@end defun
-@defun setprv privilege-name &optional setp getprv
-This function sets or resets a VMS privilege. (It does not exist on
-Unix.) The first arg is the privilege name, as a string. The second
-argument, @var{setp}, is @code{t} or @code{nil}, indicating whether the
-privilege is to be turned on or off. Its default is @code{nil}. The
-function returns @code{t} if successful, @code{nil} otherwise.
-
- If the third argument, @var{getprv}, is non-@code{nil}, @code{setprv}
-does not change the privilege, but returns @code{t} or @code{nil}
-indicating whether the privilege is currently enabled.
-@end defun
-
@node User Identification
@section User Identification
@defvar user-full-name
This variable holds the name of the user running this Emacs. It is
initialized at startup time from the value of @code{NAME} environment
-variable. You can change the value of this variable to alter the result
+variable. You can change the value of this variable to alter the result
of the @code{user-full-name} function.
@end defvar
the value of @code{user-full-name} variable, if non-@code{nil}, will be
used.
-If @var{user} is specified explicitly, @code{user-full-name} variable is
+If @var{user} is specified explicitly, @code{user-full-name} variable is
ignored.
@example
@end defun
@defun user-uid
-This function returns the effective @sc{uid} of the user.
+This function returns the effective @sc{uid} of the user.
@end defun
@defun user-home-directory
@end table
@end defun
-@defun decode-time time
+@defun decode-time &optional specified-time
This function converts a time value into calendrical information. The
-return value is a list of nine elements, as follows:
+optional @var{specified-time} should be a list of
+(@var{high} @var{low} . @var{ignored}) or (@var{high} . @var{low}), as from
+@code{current-time} and @code{file-attributes}, or @code{nil} to use the
+current time.
+
+The return value is a list of nine elements, as follows:
@example
(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone})
or a float. @var{function} will be called after that many seconds have
elapsed, with one argument, the given @var{object}. If the optional
@var{resignal} argument is provided, then after this timeout expires,
-`add-timeout' will automatically be called again with @var{resignal} as the
-first argument.
+@code{add-timeout} will automatically be called again with
+@var{resignal} as the first argument.
This function returns an object which is the @dfn{id} of this particular
timeout. You can pass that object to @code{disable-timeout} to turn off
@cindex input modes
@cindex terminal input modes
-@defun set-input-mode interrupt flow meta quit-char
+@defun set-input-mode interrupt flow meta &optional quit-char console
This function sets the mode for reading keyboard input. If
@var{interrupt} is non-null, then XEmacs uses input interrupts. If it is
@code{nil}, then it uses @sc{cbreak} mode. When XEmacs communicates
XEmacs is currently using.
@c Emacs 19 feature
-@defun current-input-mode
+@defun current-input-mode &optional console
This function returns current mode for reading keyboard input. It
returns a list, corresponding to the arguments of @code{set-input-mode},
of the form @code{(@var{interrupt} @var{flow} @var{meta} @var{quit})} in
translation.
@end defvar
-@defun keyboard-translate from to
+@defun keyboard-translate &rest pairs
This function modifies @code{keyboard-translate-table} to translate
character code @var{from} into character code @var{to}. It creates
-or enlarges the translate table if necessary.
+or enlarges the translate table if necessary. Multiple
+@var{from}-@var{to} pairs may be specified.
@end defun
@end ignore
@end defun
@defun set-recent-keys-ring-size size
-This function changes the number of events stored by XEmacs and returned
+This function changes the number of events stored by XEmacs and returned
by @code{recent-keys}.
For example, @code{(set-recent-keys-ring-size 250)} will make XEmacs
250 events by default.
@end defun
-@deffn Command open-dribble-file filename
+@deffn Command open-dribble-file filename
@cindex dribble file
This function opens a @dfn{dribble file} named @var{filename}. When a
dribble file is open, each input event from the keyboard or mouse (but
makes decisions that are less than optimal. To fix the problem, use
@code{set-device-baud-rate}.
-@defun set-device-baud-rate &optional device
+@defun set-device-baud-rate device baud-rate
This function sets the output speed of @var{device}. See
@code{device-baud-rate}. @var{device} defaults to the selected device
-(usually the only device) if omitted.
+(usually the only device) if @code{nil}.
@end defun
@defun send-string-to-terminal char-or-string &optional stdout-p device
@code{C-s} and @kbd{C-q} for flow control. Therefore, the choice of
@kbd{C-s} and @kbd{C-q} as command characters was uncontroversial.
XEmacs, for economy of keystrokes and portability, used nearly all the
-@sc{ASCII} control characters, with mnemonic meanings when possible;
+@sc{ascii} control characters, with mnemonic meanings when possible;
thus, @kbd{C-s} for search and @kbd{C-q} for quote.
Later, some terminals were introduced which required these characters
XEmacs provides a convenient way of enabling flow control if you want it:
call the function @code{enable-flow-control}.
-@defun enable-flow-control
+@deffn Command enable-flow-control &optional argument
This function enables use of @kbd{C-s} and @kbd{C-q} for output flow
control, and provides the characters @kbd{C-\} and @kbd{C-^} as aliases
for them using @code{keyboard-translate-table} (@pxref{Translating Input}).
-@end defun
+
+With optional argument @var{argument} (interactively the prefix
+argument), enable flow control mode if @var{argument} is positive; else
+disable it.
+@end deffn
You can use the function @code{enable-flow-control-on} in your
@file{.emacs} file to enable flow control automatically on certain