XEmacs 21.2.15 "Sakuragawa".
[chise/xemacs-chise.git.1] / src / process-nt.c
index dfe155d..0582761 100644 (file)
@@ -1,4 +1,4 @@
-/* Asynchronous subprocess implemenation for Win32
+/* Asynchronous subprocess implementation for Win32
    Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995
    Free Software Foundation, Inc.
    Copyright (C) 1995 Sun Microsystems, Inc.
@@ -33,7 +33,11 @@ Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 
 #include <windows.h>
+#ifndef __MINGW32__
 #include <shellapi.h>
+#else
+#include <errno.h>
+#endif
 #include <signal.h>
 #ifdef HAVE_SOCKETS
 #include <winsock.h>
@@ -45,7 +49,7 @@ Boston, MA 02111-1307, USA.  */
 /* Bound by winnt.el */
 Lisp_Object Qnt_quote_process_args;
 
-/* Implemenation-specific data. Pointed to by Lisp_Process->process_data */
+/* Implementation-specific data. Pointed to by Lisp_Process->process_data */
 struct nt_process_data
 {
   HANDLE h_process;
@@ -306,7 +310,8 @@ send_signal (HANDLE h_process, int signo)
        sigkill_data d;
        d.adr_ExitProcess = GetProcAddress (h_kernel, "ExitProcess");
        assert (d.adr_ExitProcess);
-       retval = run_in_other_process (h_process, sigkill_proc,
+       retval = run_in_other_process (h_process, 
+                                      (LPTHREAD_START_ROUTINE)sigkill_proc,
                                       &d, sizeof (d));
        break;
       }
@@ -317,7 +322,8 @@ send_signal (HANDLE h_process, int signo)
          GetProcAddress (h_kernel, "GenerateConsoleCtrlEvent");
        assert (d.adr_GenerateConsoleCtrlEvent);
        d.event = CTRL_C_EVENT;
-       retval = run_in_other_process (h_process, sigint_proc,
+       retval = run_in_other_process (h_process, 
+                                      (LPTHREAD_START_ROUTINE)sigint_proc,
                                       &d, sizeof (d));
        break;
       }
@@ -341,7 +347,7 @@ enable_child_signals (HANDLE h_process)
   d.adr_SetConsoleCtrlHandler =
     GetProcAddress (h_kernel, "SetConsoleCtrlHandler");
   assert (d.adr_SetConsoleCtrlHandler);
-  run_in_other_process (h_process, sig_enable_proc,
+  run_in_other_process (h_process, (LPTHREAD_START_ROUTINE)sig_enable_proc,
                        &d, sizeof (d));
 }
   
@@ -382,7 +388,7 @@ nt_finalize_process_data (struct Lisp_Process *p, int for_disksave)
 }
 
 /*
- * Initialize XEmacs process implemenation once
+ * Initialize XEmacs process implementation once
  */
 static void
 nt_init_process (void)
@@ -398,7 +404,7 @@ nt_init_process (void)
  * object. If this function signals, the caller is responsible for
  * deleting (and finalizing) the process object.
  *
- * The method must return PID of the new proces, a (positive??? ####) number
+ * The method must return PID of the new process, a (positive??? ####) number
  * which fits into Lisp_Int. No return value indicates an error, the method
  * must signal an error instead.
  */
@@ -607,7 +613,7 @@ nt_update_status_if_terminated (struct Lisp_Process* p)
 }
 
 /*
- * Stuff the entire contents of LSTREAM to the process ouptut pipe
+ * Stuff the entire contents of LSTREAM to the process output pipe
  */
 
 /* #### If only this function could be somehow merged with
@@ -621,14 +627,14 @@ nt_send_process (Lisp_Object proc, struct lstream* lstream)
   /* use a reasonable-sized buffer (somewhere around the size of the
      stream buffer) so as to avoid inundating the stream with blocked
      data. */
-  Bufbyte chunkbuf[512];
+  Bufbyte chunkbuf[128];
   Bytecount chunklen;
 
   while (1)
     {
       int writeret;
 
-      chunklen = Lstream_read (lstream, chunkbuf, 512);
+      chunklen = Lstream_read (lstream, chunkbuf, 128);
       if (chunklen <= 0)
        break; /* perhaps should abort() if < 0?
                  This should never happen. */
@@ -862,7 +868,7 @@ nt_open_network_stream (Lisp_Object name, Lisp_Object host, Lisp_Object service,
 
   /* We don't want to be blocked on connect */
   {
-    unsigned int nonblock = 1;
+    unsigned long nonblock = 1;
     ioctlsocket (s, FIONBIO, &nonblock);
   }
   
@@ -893,7 +899,7 @@ nt_open_network_stream (Lisp_Object name, Lisp_Object host, Lisp_Object service,
 
       if (nsel > 0)
        {
-         /* Check was connnection successful or not */
+         /* Check: was connection successful or not? */
          tv.tv_usec = 0;
          nsel = select (0, NULL, NULL, &fdset, &tv);
          if (nsel > 0)