emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lispref/os.texi


From: Luc Teirlinck
Subject: [Emacs-diffs] Changes to emacs/lispref/os.texi
Date: Tue, 06 Jul 2004 21:15:09 -0400

Index: emacs/lispref/os.texi
diff -c emacs/lispref/os.texi:1.63 emacs/lispref/os.texi:1.64
*** emacs/lispref/os.texi:1.63  Mon Jul  5 23:35:03 2004
--- emacs/lispref/os.texi       Wed Jul  7 01:12:49 2004
***************
*** 237,243 ****
  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 loading the terminal-specific library and processing the
! command-line arguments.
  @end defvar
  
  @defvar emacs-startup-hook
--- 237,243 ----
  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 loading the terminal-specific library and processing the
! command-line action arguments.
  @end defvar
  
  @defvar emacs-startup-hook
***************
*** 248,254 ****
  
  @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
--- 248,254 ----
  
  @defvar user-init-file
  @tindex user-init-file
! This variable holds the absolute 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
***************
*** 471,490 ****
  Emacs inadvertently can lose a lot of work, Emacs queries for
  confirmation before actually terminating if you have buffers that need
  saving or subprocesses that are running.  This is done in the function
! @code{save-buffers-kill-emacs}.
  
  @defvar kill-emacs-query-functions
  After asking the standard questions, @code{save-buffers-kill-emacs}
  calls the functions in the list @code{kill-emacs-query-functions}, in
  order of appearance, with no arguments.  These functions can ask for
  additional confirmation from the user.  If any of them returns
! @code{nil}, Emacs is not killed.
  @end defvar
  
  @defvar kill-emacs-hook
  This variable is a normal hook; once @code{save-buffers-kill-emacs} is
! finished with all file saving and confirmation, it runs the functions in
! this hook.  This hook is not run in batch mode.
  @end defvar
  
  @node Suspending Emacs
--- 471,501 ----
  Emacs inadvertently can lose a lot of work, Emacs queries for
  confirmation before actually terminating if you have buffers that need
  saving or subprocesses that are running.  This is done in the function
! @code{save-buffers-kill-emacs}, the higher level function from which
! @code{kill-emacs} is usually called.
  
  @defvar kill-emacs-query-functions
  After asking the standard questions, @code{save-buffers-kill-emacs}
  calls the functions in the list @code{kill-emacs-query-functions}, in
  order of appearance, with no arguments.  These functions can ask for
  additional confirmation from the user.  If any of them returns
! @code{nil}, @code{save-buffers-kill-emacs} does not kill Emacs, and
! does not run the remaining functions in this hook.  Calling
! @code{kill-emacs} directly does not run this hook.
  @end defvar
  
  @defvar kill-emacs-hook
  This variable is a normal hook; once @code{save-buffers-kill-emacs} is
! finished with all file saving and confirmation, it calls
! @code{kill-emacs} which runs the functions in this hook.
! @code{kill-emacs} does not run this hook in batch mode.
! 
! @code{kill-emacs} may be invoked directly (that is not via
! @code{save-buffers-kill-emacs}) if the terminal is disconnected, or in
! similar situations where interaction with the user is not possible.
! Thus, if your hook needs to interact with the user, put it on
! @code{kill-emacs-query-functions}; if it needs to run regardless of
! how Emacs is killed, put it on @code{kill-emacs-hook}.
  @end defvar
  
  @node Suspending Emacs
***************
*** 508,514 ****
  different window.  Therefore, suspending is not allowed when Emacs is using
  a window system (X or MS Windows).
  
! @defun suspend-emacs string
  This function stops Emacs and returns control to the superior process.
  If and when the superior process resumes Emacs, @code{suspend-emacs}
  returns @code{nil} to its caller in Lisp.
--- 519,525 ----
  different window.  Therefore, suspending is not allowed when Emacs is using
  a window system (X or MS Windows).
  
! @defun suspend-emacs &optional string
  This function stops Emacs and returns control to the superior process.
  If and when the superior process resumes Emacs, @code{suspend-emacs}
  returns @code{nil} to its caller in Lisp.
***************
*** 542,551 ****
            (function (lambda ()
                        (or (y-or-n-p
                              "Really suspend? ")
!                           (error "Suspend cancelled")))))
       @result{} (lambda nil
            (or (y-or-n-p "Really suspend? ")
!               (error "Suspend cancelled")))
  @end group
  @group
  (add-hook 'suspend-resume-hook
--- 553,562 ----
            (function (lambda ()
                        (or (y-or-n-p
                              "Really suspend? ")
!                           (error "Suspend canceled")))))
       @result{} (lambda nil
            (or (y-or-n-p "Really suspend? ")
!               (error "Suspend canceled")))
  @end group
  @group
  (add-hook 'suspend-resume-hook
***************
*** 694,701 ****
  @deffn Command getenv var
  @cindex environment variable access
  This function returns the value of the environment variable @var{var},
! as a string.  Within Emacs, the environment variable values are kept in
! the Lisp variable @code{process-environment}.
  
  @example
  @group
--- 705,714 ----
  @deffn Command getenv var
  @cindex environment variable access
  This function returns the value of the environment variable @var{var},
! as a string.  @var{var} should be a string.  If @var{var} is undefined
! in the environment, @code{getenv} returns @code{nil}.  If returns
! @samp{""} if @var{var} is set but null.  Within Emacs, the environment
! variable values are kept in the Lisp variable @code{process-environment}.
  
  @example
  @group
***************
*** 717,727 ****
  @end deffn
  
  @c Emacs 19 feature
! @deffn Command setenv variable value
  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
! variable with @code{let} is also reasonable practice.
  @end deffn
  
  @defvar process-environment
--- 730,751 ----
  @end deffn
  
  @c Emacs 19 feature
! @deffn Command setenv variable &optional value
  This command sets the value of the environment variable named
! @var{variable} to @var{value}.  @var{variable} should be a string.
! Internally, Emacs Lisp can handle any string.  However, normally
! @var{variable} should be a valid shell identifier, that is, a sequence
! of letters, digits and underscores, starting with a letter or
! underscore.  Otherwise, errors may occur if subprocesses of Emacs try
! to access the value of @var{variable}.  If @var{value} is omitted or
! @code{nil}, @code{setenv} removes @var{variable} from the environment.
! Otherwise, @var{value} should be a string.
! 
! @code{setenv} works by modifying @code{process-environment}; binding
! that variable with @code{let} is also reasonable practice.
! 
! @code{setenv} returns the new value of @var{variable}, or @code{nil}
! if it removed @var{variable} from the environment.
  @end deffn
  
  @defvar process-environment
***************
*** 801,806 ****
--- 825,834 ----
  installing Emacs as setuid or setgid so that it can read kernel
  information, and that usually isn't advisable.
  
+ If the 1-minute load average is available, but the 5- or 15-minute
+ averages are not, this function returns a shortened list containing
+ the available averages.
+ 
  @example
  @group
  (load-average)
***************
*** 820,831 ****
  @end defun
  
  @defun emacs-pid
! This function returns the process @acronym{ID} of the Emacs process.
  @end defun
  
  @defvar tty-erase-char
  This variable holds the erase character that was selected
  in the system's terminal driver, before Emacs was started.
  @end defvar
  
  @defun setprv privilege-name &optional setp getprv
--- 848,861 ----
  @end defun
  
  @defun emacs-pid
! This function returns the process @acronym{ID} of the Emacs process,
! as an integer.
  @end defun
  
  @defvar tty-erase-char
  This variable holds the erase character that was selected
  in the system's terminal driver, before Emacs was started.
+ The value is @code{nil} if Emacs is running under a window system.
  @end defvar
  
  @defun setprv privilege-name &optional setp getprv
***************
*** 836,842 ****
  @code{nil}.  The function returns @code{t} if successful, @code{nil}
  otherwise.
  
!   If the third argument, @var{getprv}, is address@hidden, @code{setprv}
  does not change the privilege, but returns @code{t} or @code{nil}
  indicating whether the privilege is currently enabled.
  @end defun
--- 866,872 ----
  @code{nil}.  The function returns @code{t} if successful, @code{nil}
  otherwise.
  
! If the third argument, @var{getprv}, is address@hidden, @code{setprv}
  does not change the privilege, but returns @code{t} or @code{nil}
  indicating whether the privilege is currently enabled.
  @end defun
***************
*** 845,852 ****
  @section User Identification
  
  @defvar init-file-user
! This variable says which user's init files should be used by Emacs---or
! @code{nil} if none.  The value reflects command-line options such as
  @samp{-q} or @samp{-u @var{user}}.
  
  Lisp packages that load files of customizations, or any other sort of
--- 875,883 ----
  @section User Identification
  
  @defvar init-file-user
! This variable says which user's init files should be used by
! Emacs---or @code{nil} if none.  @code{""} stands for the user who
! originally logged in.  The value reflects command-line options such as
  @samp{-q} or @samp{-u @var{user}}.
  
  Lisp packages that load files of customizations, or any other sort of
***************
*** 873,879 ****
  on the effective @acronym{UID}, not the real @acronym{UID}.
  
  If you specify @var{uid}, the value is the user name that corresponds
! to @var{uid} (which should be an integer).
  
  @example
  @group
--- 904,911 ----
  on the effective @acronym{UID}, not the real @acronym{UID}.
  
  If you specify @var{uid}, the value is the user name that corresponds
! to @var{uid} (which should be an integer), or @code{nil} if there is
! no such user.
  
  @example
  @group
***************
*** 904,910 ****
  If the Emacs job's user-id does not correspond to any known user (and
  provided @code{NAME} is not set), the value is @code{"unknown"}.
  
! If @var{uid} is address@hidden, then it should be an integer (a user-id)
  or a string (a login name).  Then @code{user-full-name} returns the full
  name corresponding to that user-id or login name.  If you specify a
  user-id or login name that isn't defined, it returns @code{nil}.
--- 936,942 ----
  If the Emacs job's user-id does not correspond to any known user (and
  provided @code{NAME} is not set), the value is @code{"unknown"}.
  
! If @var{uid} is address@hidden, then it should be a number (a user-id)
  or a string (a login name).  Then @code{user-full-name} returns the full
  name corresponding to that user-id or login name.  If you specify a
  user-id or login name that isn't defined, it returns @code{nil}.
***************
*** 956,962 ****
  instead of the current time.  The argument should be a list whose first
  two elements are integers.  Thus, you can use times obtained from
  @code{current-time} (see below) and from @code{file-attributes}
! (@pxref{File Attributes}).
  
  @example
  @group
--- 988,995 ----
  instead of the current time.  The argument should be a list whose first
  two elements are integers.  Thus, you can use times obtained from
  @code{current-time} (see below) and from @code{file-attributes}
! (@pxref{Definition of file-attributes}).  @var{time-value} can also be
! a cons of two integers, but this is considered obsolete.
  
  @example
  @group
***************
*** 971,977 ****
  This function returns the system's time value as a list of three
  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
  @ifnottex
  @var{high} * 2**16 + @var{low}.
  @end ifnottex
--- 1004,1010 ----
  This function returns the system's time value as a list of three
  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 UTC (Coordinated Universal Time), which is
  @ifnottex
  @var{high} * 2**16 + @var{low}.
  @end ifnottex
***************
*** 984,990 ****
  the resolution of only one second).
  
  The first two elements can be compared with file time values such as you
! get with the function @code{file-attributes}.  @xref{File Attributes}.
  @end defun
  
  @c Emacs 19 feature
--- 1017,1024 ----
  the resolution of only one second).
  
  The first two elements can be compared with file time values such as you
! get with the function @code{file-attributes}.
! @xref{Definition of file-attributes}.
  @end defun
  
  @c Emacs 19 feature
***************
*** 1001,1020 ****
  adjustment, then the value is constant through time.
  
  If the operating system doesn't supply all the information necessary to
! compute the value, both elements of the list are @code{nil}.
  
  The argument @var{time-value}, if given, specifies a time to analyze
! instead of the current time.  The argument should be a cons cell
! containing two integers, or a list whose first two elements are
! integers.  Thus, you can use times obtained from @code{current-time}
! (see above) and from @code{file-attributes} (@pxref{File Attributes}).
  @end defun
  
  @defun set-time-zone-rule tz
  This function specifies the local time zone according to @var{tz}.  If
  @var{tz} is @code{nil}, that means to use an implementation-defined
  default time zone.  If @var{tz} is @code{t}, that means to use
! Universal Time.
  @end defun
  
  @defun float-time &optional time-value
--- 1035,1055 ----
  adjustment, then the value is constant through time.
  
  If the operating system doesn't supply all the information necessary to
! compute the value, the unknown elements of the list are @code{nil}.
  
  The argument @var{time-value}, if given, specifies a time to analyze
! instead of the current time.  The argument should have the same form
! as for @code{current-time-string} (see above).  Thus, you can use
! times obtained from @code{current-time} (see above) and from
! @code{file-attributes}.  @xref{Definition of file-attributes}.
  @end defun
  
  @defun set-time-zone-rule tz
  This function specifies the local time zone according to @var{tz}.  If
  @var{tz} is @code{nil}, that means to use an implementation-defined
  default time zone.  If @var{tz} is @code{t}, that means to use
! Universal Time.  Otherwise, @var{tz} should be a string specifying a
! time zone rule.
  @end defun
  
  @defun float-time &optional time-value
***************
*** 1022,1028 ****
  seconds since the epoch.  The argument @var{time-value}, if given,
  specifies a time to convert instead of the current time.  The argument
  should have the same form as for @code{current-time-string} (see
! above), and it also accepts the output of @code{current-time} and
  @code{file-attributes}.
  
  @emph{Warning}: Since the result is floating point, it may not be
--- 1057,1063 ----
  seconds since the epoch.  The argument @var{time-value}, if given,
  specifies a time to convert instead of the current time.  The argument
  should have the same form as for @code{current-time-string} (see
! above).  Thus, it accepts the output of @code{current-time} and
  @code{file-attributes}.
  
  @emph{Warning}: Since the result is floating point, it may not be
***************
*** 1036,1042 ****
  to strings or to calendrical information.  There is also a function to
  convert calendrical information to a time value.  You can get time
  values from the functions @code{current-time} (@pxref{Time of Day}) and
! @code{file-attributes} (@pxref{File Attributes}).
  
  Many operating systems are limited to time values that contain 32 bits
  of information; these systems typically handle only the times from
--- 1071,1077 ----
  to strings or to calendrical information.  There is also a function to
  convert calendrical information to a time value.  You can get time
  values from the functions @code{current-time} (@pxref{Time of Day}) and
! @code{file-attributes} (@pxref{Definition of file-attributes}).
  
  Many operating systems are limited to time values that contain 32 bits
  of information; these systems typically handle only the times from
***************
*** 1189,1194 ****
--- 1224,1230 ----
  @table @var
  @item seconds
  The number of seconds past the minute, as an integer between 0 and 59.
+ On some operating systems, this is 60 for leap seconds.
  @item minutes
  The number of minutes past the hour, as an integer between 0 and 59.
  @item hour
***************
*** 1225,1233 ****
  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
  (as you would get from @code{current-time-zone}), a string as in the
! @code{TZ} environment variable, or an integer (as you would get from
! @code{decode-time}).  The specified zone is used without any further
! alteration for daylight savings time.
  
  If you pass more than seven arguments to @code{encode-time}, the first
  six are used as @var{seconds} through @var{year}, the last argument is
--- 1261,1269 ----
  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
  (as you would get from @code{current-time-zone}), a string as in the
! @code{TZ} environment variable, @code{t} for Universal Time, or an
! integer (as you would get from @code{decode-time}).  The specified
! zone is used without any further alteration for daylight savings time.
  
  If you pass more than seven arguments to @code{encode-time}, the first
  six are used as @var{seconds} through @var{year}, the last argument is
***************
*** 1309,1323 ****
  timer to call a function that takes substantial time to run is likely
  to be annoying.
  
! @defun run-at-time time repeat function &rest args
! This function arranges to call @var{function} with arguments @var{args}
! at time @var{time}.  The argument @var{function} is a function to call
! later, and @var{args} are the arguments to give it when it is called.
! The time @var{time} is specified as a string.
  
  Absolute times may be specified in a wide variety of formats; this
! function tries to accept all the commonly used date formats.  Valid
! formats include these two,
  
  @example
  @address@hidden@var{day} @var{hour}:@var{min}:@var{sec} @var{timezone}
--- 1345,1362 ----
  timer to call a function that takes substantial time to run is likely
  to be annoying.
  
! @deffn Command run-at-time time repeat function &rest args
! This sets up a timer that calls the function @var{function} with
! arguments @var{args} at time @var{time}.  If @var{repeat} is a number
! (integer or floating point), the timer also runs every @var{repeat}
! seconds after that.  If @var{repeat} is @code{nil}, the timer runs
! only once.
! 
! @var{time} may specify an absolute or a relative time.
  
  Absolute times may be specified in a wide variety of formats; this
! function tries to accept all the commonly used date formats.  The most
! convenient formats are strings.  Valid such formats include these two,
  
  @example
  @address@hidden@var{day} @var{hour}:@var{min}:@var{sec} @var{timezone}
***************
*** 1330,1336 ****
  @code{current-time-string} returns is also allowed, and many others
  as well.
  
! To specify a relative time, use numbers followed by units.
  For example:
  
  @table @samp
--- 1369,1375 ----
  @code{current-time-string} returns is also allowed, and many others
  as well.
  
! To specify a relative time as a string, use numbers followed by units.
  For example:
  
  @table @samp
***************
*** 1345,1357 ****
  For relative time values, Emacs considers a month to be exactly thirty
  days, and a year to be exactly 365.25 days.
  
! If @var{time} is a number (integer or floating point), that specifies a
! relative time measured in seconds.
! 
! The argument @var{repeat} specifies how often to repeat the call.  If
! @var{repeat} is @code{nil}, there are no repetitions; @var{function} is
! called just once, at @var{time}.  If @var{repeat} is a number, it
! specifies a repetition period measured in seconds.
  
  In most cases, @var{repeat} has no effect on when @emph{first} call
  takes address@hidden alone specifies that.  There is one exception:
--- 1384,1392 ----
  For relative time values, Emacs considers a month to be exactly thirty
  days, and a year to be exactly 365.25 days.
  
! Not all convenient formats are strings.  If @var{time} is a number
! (integer or floating point), that specifies a relative time measured
! in seconds.
  
  In most cases, @var{repeat} has no effect on when @emph{first} call
  takes address@hidden alone specifies that.  There is one exception:
***************
*** 1362,1368 ****
  The function @code{run-at-time} returns a timer value that identifies
  the particular scheduled future action.  You can use this value to call
  @code{cancel-timer} (see below).
! @end defun
  
  @defmac with-timeout (seconds address@hidden) address@hidden
  Execute @var{body}, but give up after @var{seconds} seconds.  If
--- 1397,1403 ----
  The function @code{run-at-time} returns a timer value that identifies
  the particular scheduled future action.  You can use this value to call
  @code{cancel-timer} (see below).
! @end deffn
  
  @defmac with-timeout (seconds address@hidden) address@hidden
  Execute @var{body}, but give up after @var{seconds} seconds.  If
***************
*** 1388,1394 ****
  a timer to avoid waiting too long for an answer.  @xref{Yes-or-No
  Queries}.
  
! @defun run-with-idle-timer secs repeat function &rest args
  Set up a timer which runs when Emacs has been idle for @var{secs}
  seconds.  The value of @var{secs} may be an integer or a floating point
  number.
--- 1423,1429 ----
  a timer to avoid waiting too long for an answer.  @xref{Yes-or-No
  Queries}.
  
! @deffn Command run-with-idle-timer secs repeat function &rest args
  Set up a timer which runs when Emacs has been idle for @var{secs}
  seconds.  The value of @var{secs} may be an integer or a floating point
  number.
***************
*** 1400,1406 ****
  
  The function @code{run-with-idle-timer} returns a timer value which you
  can use in calling @code{cancel-timer} (see below).
! @end defun
  
  @cindex idleness
    Emacs becomes ``idle'' when it starts waiting for user input, and it
--- 1435,1441 ----
  
  The function @code{run-with-idle-timer} returns a timer value which you
  can use in calling @code{cancel-timer} (see below).
! @end deffn
  
  @cindex idleness
    Emacs becomes ``idle'' when it starts waiting for user input, and it
***************
*** 1426,1433 ****
  @defun cancel-timer timer
  Cancel the requested action for @var{timer}, which should be a value
  previously returned by @code{run-at-time} or @code{run-with-idle-timer}.
! This cancels the effect of that call to @code{run-at-time}; the arrival
! of the specified time will not cause anything special to happen.
  @end defun
  
  @node Terminal Input
--- 1461,1468 ----
  @defun cancel-timer timer
  Cancel the requested action for @var{timer}, which should be a value
  previously returned by @code{run-at-time} or @code{run-with-idle-timer}.
! This cancels the effect of that call to one of these functions; the
! arrival of the specified time will not cause anything special to happen.
  @end defun
  
  @node Terminal Input
***************
*** 1450,1456 ****
  @cindex input modes
  @cindex terminal input modes
  
! @defun set-input-mode interrupt flow meta quit-char
  This function sets the mode for reading keyboard input.  If
  @var{interrupt} is non-null, then Emacs uses input interrupts.  If it is
  @code{nil}, then it uses @sc{cbreak} mode.  The default setting is
--- 1485,1491 ----
  @cindex input modes
  @cindex terminal input modes
  
! @defun set-input-mode interrupt flow meta &optional quit-char
  This function sets the mode for reading keyboard input.  If
  @var{interrupt} is non-null, then Emacs uses input interrupts.  If it is
  @code{nil}, then it uses @sc{cbreak} mode.  The default setting is
***************
*** 1523,1553 ****
  @c Emacs 19 feature
  @defvar extra-keyboard-modifiers
  This variable lets Lisp programs ``press'' the modifier keys on the
! keyboard.  The value is a bit mask:
! 
! @table @asis
! @item 1
! The @key{SHIFT} key.
! @item 2
! The @key{LOCK} key.
! @item 4
! The @key{CTL} key.
! @item 8
! The @key{META} key.
! @end table
! 
! Each time the user types a keyboard key, it is altered as if the
! modifier keys specified in the bit mask were held down.
  
  When using a window system, the program can ``press'' any of the
  modifier keys in this way.  Otherwise, only the @key{CTL} and @key{META}
  keys can be virtually pressed.
  @end defvar
  
  @defvar keyboard-translate-table
  This variable is the translate table for keyboard characters.  It lets
  you reshuffle the keys on the keyboard without changing any command
  bindings.  Its value is normally a char-table, or else @code{nil}.
  
  If @code{keyboard-translate-table} is a char-table
  (@pxref{Char-Tables}), then each character read from the keyboard is
--- 1558,1587 ----
  @c Emacs 19 feature
  @defvar extra-keyboard-modifiers
  This variable lets Lisp programs ``press'' the modifier keys on the
! keyboard.  The value is a character.  Only the modifiers of the
! character matter.  Each time the user types a keyboard key, it is
! altered as if those modifier keys were held down.  For instance, if
! you bind @code{extra-keyboard-modifiers} to @code{?\C-\M-a}, then all
! keyboard input characters typed during the scope of the binding will
! have the control and meta modifiers applied to them.  The character
! @code{?\C-@@}, equivalent to the integer 0, does not count as a control
! character for this purpose, but as a character with no modifiers.
! Thus, setting @code{extra-keyboard-modifiers} to zero cancels any
! modification.
  
  When using a window system, the program can ``press'' any of the
  modifier keys in this way.  Otherwise, only the @key{CTL} and @key{META}
  keys can be virtually pressed.
+ 
+ Note that this variable applies only to events that really come from
+ the keyboard, and has no effect on mouse events or any other events.
  @end defvar
  
  @defvar keyboard-translate-table
  This variable is the translate table for keyboard characters.  It lets
  you reshuffle the keys on the keyboard without changing any command
  bindings.  Its value is normally a char-table, or else @code{nil}.
+ (It can also be a string or vector, but this is considered obsolete.)
  
  If @code{keyboard-translate-table} is a char-table
  (@pxref{Char-Tables}), then each character read from the keyboard is
***************
*** 1587,1592 ****
--- 1621,1631 ----
  character after it is read from the terminal.  Record-keeping features
  such as @code{recent-keys} and dribble files record the characters after
  translation.
+ 
+ Note also that this translation is done before the characters are
+ supplied to input methods (@pxref{Input Methods}).  Use
+ @code{translation-table-for-input} (@pxref{Translation of Characters}),
+ if you want to translate characters after input methods operate.
  @end defvar
  
  @defun keyboard-translate from to
***************
*** 1699,1705 ****
  
  Finally, if you have enabled keyboard character set decoding using
  @code{set-keyboard-coding-system}, decoding is done after the
! translations listed above.  @xref{Specifying Coding Systems}.  In future
  Emacs versions, character set decoding may be done before the other
  translations.
  
--- 1738,1744 ----
  
  Finally, if you have enabled keyboard character set decoding using
  @code{set-keyboard-coding-system}, decoding is done after the
! translations listed above.  @xref{Terminal I/O Encoding}.  In future
  Emacs versions, character set decoding may be done before the other
  translations.
  
***************
*** 1804,1810 ****
  were actually output, you can determine reliably whether they correspond
  to the Termcap specifications in use.
  
! See also @code{open-dribble-file} in @ref{Terminal Input}.
  
  @example
  @group
--- 1843,1852 ----
  were actually output, you can determine reliably whether they correspond
  to the Termcap specifications in use.
  
! You close the termscript file by calling this function with an
! argument of @code{nil}.
! 
! See also @code{open-dribble-file} in @ref{Recording Input}.
  
  @example
  @group
***************
*** 1969,1978 ****
  mean time, Emacs provides a convenient way of enabling flow control if
  you want it: call the function @code{enable-flow-control}.
  
! @deffn Command enable-flow-control
! 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 deffn
  
  You can use the function @code{enable-flow-control-on} in your
--- 2011,2026 ----
  mean time, Emacs provides a convenient way of enabling flow control if
  you want it: call the function @code{enable-flow-control}.
  
! @deffn Command enable-flow-control &optional arg
! When @var{arg} is a positive integer, 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}).
! 
! When @var{arg} is a negative integer or zero, it disables these
! features.  When @var{arg} is @code{nil} or omitted, it toggles.
! Interactively, @var{arg} is the prefix argument.  If address@hidden,
! its numeric value is used.
  @end deffn
  
  You can use the function @code{enable-flow-control-on} in your
***************
*** 1994,2000 ****
  @item
  @cindex @sc{cbreak}
  It sets @sc{cbreak} mode for terminal input, and tells the operating
! system to handle flow control, with @code{(set-input-mode nil t)}.
  
  @item
  It sets up @code{keyboard-translate-table} to translate @kbd{C-\} and
--- 2042,2048 ----
  @item
  @cindex @sc{cbreak}
  It sets @sc{cbreak} mode for terminal input, and tells the operating
! system to handle flow control.  This is done using @code{set-input-mode}.
  
  @item
  It sets up @code{keyboard-translate-table} to translate @kbd{C-\} and
***************
*** 2061,2070 ****
  Emacs supports saving state by using a hook called
  @code{emacs-save-session-functions}.  Each function in this hook is
  called when the session manager tells Emacs that the window system is
! shutting down.  The functions are called with the current buffer set
! to a temporary buffer.  Each function can use @code{insert} to add
! Lisp code to this buffer.  At the end, Emacs saves the buffer in a
! file that another Emacs will later load in order to restart the saved session.
  
  If a function in @code{emacs-save-session-functions} returns
  address@hidden, Emacs tells the session manager to cancel the
--- 2109,2119 ----
  Emacs supports saving state by using a hook called
  @code{emacs-save-session-functions}.  Each function in this hook is
  called when the session manager tells Emacs that the window system is
! shutting down.  The functions are called with no arguments and with the
! current buffer set to a temporary buffer.  Each function can use
! @code{insert} to add Lisp code to this buffer.  At the end, Emacs
! saves the buffer in a file that a subsequent Emacs invocation will
! load in order to restart the saved session.
  
  If a function in @code{emacs-save-session-functions} returns
  address@hidden, Emacs tells the session manager to cancel the




reply via email to

[Prev in Thread] Current Thread [Next in Thread]