changeset 83551:d9dc7e67ad3f

Fix various suspend-related bugs in emacsclient. (Report & patch by Dan Nicolaescu.) * lib-src/emacsclient.c (in, out): Remove. (s): New variable (moved out from main). (handle_sigcont, handle_sigtstp): Use SEND_STRING. (main): Fix typos. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-591
author Karoly Lorentey <lorentey@elte.hu>
date Mon, 01 Jan 2007 18:32:06 +0000
parents 17e0dd217877
children d3099204c799
files lib-src/emacsclient.c
diffstat 1 files changed, 7 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/emacsclient.c	Mon Jan 01 17:38:32 2007 +0000
+++ b/lib-src/emacsclient.c	Mon Jan 01 18:32:06 2007 +0000
@@ -171,8 +171,8 @@
 /* PID of the Emacs server process.  */
 int emacs_pid = 0;
 
-/* File handles for communicating with Emacs. */
-FILE *out, *in;
+/* Socket used to communicate with the Emacs server process.  */
+HSOCKET s;
 
 void print_help_and_exit () NO_RETURN;
 
@@ -906,9 +906,7 @@
   if (tcgetpgrp (1) == getpgrp ())
     {
       /* We are in the foreground. */
-      fprintf (out, "-resume \n");
-      fflush (out);
-      fsync (fileno (out));
+      SEND_STRING ("-resume \n");
     }
   else
     {
@@ -932,12 +930,8 @@
   int old_errno = errno;
   sigset_t set;
   
-  if (out)
-    {
-      fprintf (out, "-suspend \n");
-      fflush (out);
-      fsync (fileno (out));
-    }
+  if (s)
+    SEND_STRING ("-suspend \n");
 
   /* Unblock this signal and call the default handler by temprarily
      changing the handler and resignalling. */
@@ -1240,7 +1234,6 @@
      int argc;
      char **argv;
 {
-  HSOCKET s;
   int i, rl, needlf = 0;
   char *cwd, *str;
   char string[BUFSIZ+1];
@@ -1410,7 +1403,7 @@
                 SEND_STRING ("-eval ");
               else
                 SEND_STRING ("-file ");
-              SEND_QUOTED (out);
+              SEND_QUOTED (str);
             }
           SEND_STRING (" ");
         }
@@ -1473,7 +1466,7 @@
           fprintf (stderr, "*ERROR*: %s", str);
           needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
         }
-      else if (strprefix ("-suspend ", str))
+      else if (strprefix ("-suspend ", string))
         {
           /* -suspend: Suspend this terminal, i.e., stop the process. */
           if (needlf)