/* Session management module for systems which understand the X Session
management protocol.
- Copyright (C) 2002, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#define SMID_OPT "--smid="
+/* The option to start Emacs without the splash screen when
+ restarting Emacs. */
+
+#define NOSPLASH_OPT "--no-splash"
+
+
/* Handle any messages from the session manager. If no connection is
open to a session manager, just return 0.
Otherwise returns the number of events stored in buffer BUFP,
emacs_event.kind = SAVE_SESSION_EVENT;
}
-/* This is called when the session manager tells us to save ourself.
+/* This is called when the session manager tells us to save ourselves.
We set the required properties so the session manager can restart us,
plus the current working directory property (not mandatory) so we
are started in the correct directory.
props[props_idx]->vals[0].value = SDATA (Vinvocation_name);
++props_idx;
- /* How to restart Emacs (i.e.: /path/to/emacs --smid=xxxx). */
+ /* How to restart Emacs (i.e.: /path/to/emacs --smid=xxxx --no-splash). */
props[props_idx] = &prop_ptr[props_idx];
props[props_idx]->name = SmRestartCommand;
props[props_idx]->type = SmLISTofARRAY8;
- props[props_idx]->num_vals = 2; /* 2 values: /path/to/emacs, --smid=xxx */
+ props[props_idx]->num_vals = 3; /* /path/to/emacs, --smid=xxx --no-splash */
props[props_idx]->vals = &values[val_idx];
props[props_idx]->vals[0].length = strlen (emacs_program);
props[props_idx]->vals[0].value = emacs_program;
props[props_idx]->vals[1].length = strlen (smid_opt);
props[props_idx]->vals[1].value = smid_opt;
- val_idx += 2;
+
+ props[props_idx]->vals[2].length = strlen (NOSPLASH_OPT);
+ props[props_idx]->vals[2].value = NOSPLASH_OPT;
+ val_idx += 3;
++props_idx;
/* User id */
/* Empty */
}
-/* Error handlers for SM and ICE. We don't wan't to exit Emacs just
+/* Error handlers for SM and ICE. We don't want to exit Emacs just
because there is some error in the session management. */
static void
smc_error_handler (smcConn,
IceAddConnectionWatch (ice_conn_watch_CB, 0);
/* Open the connection to the session manager. A failure is not
- critical, it usualy means that no session manager is running.
+ critical, it usually means that no session manager is running.
The errorstring is here for debugging. */
smc_conn = SmcOpenConnection (NULL, NULL, 1, 0,
(SmcSaveYourselfProcMask|