X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9f0b1513ad9b24e2f7dec87d3afb32cd6240ccad..8b55eeeb70be4b4ff3dd4694013bdb1a9f668bc6:/src/xsmfns.c
diff --git a/src/xsmfns.c b/src/xsmfns.c
index cb56ae648d..526d4c3610 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -1,7 +1,7 @@
/* Session management module for systems which understand the X Session
management protocol.
-Copyright (C) 2002-2011 Free Software Foundation, Inc.
+Copyright (C) 2002-2013 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -29,14 +29,12 @@ along with GNU Emacs. If not, see . */
#include
#include
#include
-#include
#include "lisp.h"
#include "systime.h"
#include "sysselect.h"
#include "frame.h"
#include "termhooks.h"
-#include "termopts.h"
#include "xterm.h"
#include "process.h"
#include "keyboard.h"
@@ -97,7 +95,7 @@ ice_connection_closed (void)
open to a session manager, just return. */
static void
-x_session_check_input (int fd, void *data, int for_read)
+x_session_check_input (int fd, void *data)
{
int ret;
@@ -109,8 +107,7 @@ x_session_check_input (int fd, void *data, int for_read)
will be called. */
emacs_event.kind = NO_EVENT;
- ret = IceProcessMessages (SmcGetIceConnection (smc_conn),
- (IceReplyWaitInfo *)0, (Bool *)0);
+ ret = IceProcessMessages (SmcGetIceConnection (smc_conn), 0, 0);
if (ret != IceProcessMessagesSuccess)
{
/* Either IO error or Connection closed. */
@@ -223,9 +220,11 @@ smc_save_yourself_CB (SmcConn smcConn,
props[props_idx]->name = xstrdup (SmRestartCommand);
props[props_idx]->type = xstrdup (SmLISTofARRAY8);
/* /path/to/emacs, --smid=xxx --no-splash --chdir=dir ... */
+ if (INT_MAX - 3 < initial_argc)
+ memory_full (SIZE_MAX);
i = 3 + initial_argc;
props[props_idx]->num_vals = i;
- vp = (SmPropValue *) xmalloc (i * sizeof(*vp));
+ vp = xnmalloc (i, sizeof *vp);
props[props_idx]->vals = vp;
props[props_idx]->vals[vp_idx].length = strlen (emacs_program);
props[props_idx]->vals[vp_idx++].value = emacs_program;
@@ -460,7 +459,7 @@ x_session_initialize (struct x_display_info *dpyinfo)
Vx_session_id = build_string (client_id);
#ifdef USE_GTK
- /* GTK creats a leader window by itself, but we need to tell
+ /* GTK creates a leader window by itself, but we need to tell
it about our client_id. */
gdk_x11_set_sm_client_id (client_id);
#else
@@ -514,9 +513,11 @@ Do not call this function yourself. */)
prevent. Fix this in next version. */
Fkill_emacs (Qnil);
+#if 0
/* This will not be reached, but we want kill-emacs-hook to be run. */
SmcCloseConnection (smc_conn, 0, 0);
ice_connection_closed ();
+#endif
}
return Qnil;