changeset 43829:7e937c00ff00

Clean up session manager node.
author Richard M. Stallman <rms@gnu.org>
date Mon, 11 Mar 2002 09:10:19 +0000
parents 0e61ba1b551f
children 78c2427665f0
files lispref/os.texi
diffstat 1 files changed, 25 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/lispref/os.texi	Mon Mar 11 04:15:31 2002 +0000
+++ b/lispref/os.texi	Mon Mar 11 09:10:19 2002 +0000
@@ -2000,36 +2000,38 @@
 
 @node Session Management
 @section Session Management
-@cindex session management
-@cindex X session management protocol
+@cindex session manager
 
-X has defined the X Session Management Protocol to handle start and
-restart of applications.  There is one session manager who has the
-responsibility to keep track of the applications that are running 
-when the window system shuts down, so the session manager later can 
-restart them.
+Emacs supports the X Session Management Protocol for suspension and
+restart of applications.  In the X Window System, a program called the
+@dfn{session manager} has the responsibility to keep track of the
+applications that are running.  During shutdown, the session manager
+asks applications to save their state, and delays the actual shutdown
+until they respond.  An application can also cancel the shutdown.
 
-Before the session manager shuts down the window system it informs
-applications that they should save their state.  When the applications
-are restarted, the applications will restore their state.
+When the session manager restarts a suspended session, it directs
+these applications to individually reload their saved state.  It does
+this by specifying a special command-line argument that says what
+saved session to restore.  For Emacs, this argument is @samp{--smid
+@var{session}}.
 
 @defvar emacs-save-session-functions
 @tindex emacs-save-session-functions
 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.  Functions can use @code{insert} to add lisp code
-to this buffer.  The buffer will then be saved in a lisp file that is
-loaded when Emacs is restarted.
+shutting down.  The functions are called with the current buffer set
+to a temporary buffer.  Each functions can use @code{insert} to add
+Lisp code to this buffer.  At the end, Emacs saves the buffer in a
+file that Emacs will load in order to restart the saved session.
 
-If a function in @code{emacs-save-session-functions} returns non-nil
-Emacs will inform the session manager that the window system shutdown
-shall be cancelled.
+If a function in @code{emacs-save-session-functions} returns
+non-@code{nil}, Emacs tells the session manager to cancel the
+shutdown.
 @end defvar
 
-Here is an example that just inserts some text into *scratch* when Emacs
-is restarted by the session manager.
+Here is an example that just inserts some text into *scratch* when
+Emacs is restarted by the session manager.
 
 @example
 @group
@@ -2038,11 +2040,9 @@
 
 @group
 (defun save-yourself-test ()
-  (progn
-    (insert
-     "(save-excursion
-        (switch-to-buffer \"*scratch*\")
-        (insert \"I am restored\"))")
-   @result{} nil))
+  (insert "(save-excursion
+  (switch-to-buffer \"*scratch*\")
+  (insert \"I am restored\"))")
+  nil)
 @end group
 @end example