X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fprocess-nt.c;h=0582761e01a58e8c15b294b8c7c6b75debd81ad1;hb=d6e1aa994e9aa204812e6fee3c7520f40e300325;hp=dfe155da4d7f0b75d5b527d3f1c67b91b44b52a7;hpb=669565bfdc5d704dfb1d5ac1a0ec01fb3615a1ae;p=chise%2Fxemacs-chise.git- diff --git a/src/process-nt.c b/src/process-nt.c index dfe155d..0582761 100644 --- a/src/process-nt.c +++ b/src/process-nt.c @@ -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 +#ifndef __MINGW32__ #include +#else +#include +#endif #include #ifdef HAVE_SOCKETS #include @@ -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)