@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
This function is used to open a @dfn{termscript file} that will record
all the characters sent by XEmacs to the terminal. (If there are
multiple tty or stream devices, all characters sent to all such devices
-are recorded.) The funcion returns @code{nil}. Termscript files are
+are recorded.) The function returns @code{nil}. Termscript files are
useful for investigating problems where XEmacs garbles the screen,
problems that are due to incorrect Termcap entries or to undesirable
settings of terminal options more often than to actual XEmacs bugs.
@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