update.
[chise/xemacs-chise.git.1] / src / ntproc.c
index eebf13f..790454b 100644 (file)
@@ -1,4 +1,4 @@
-/* Process support for Windows NT port of XEMACS.
+/* Old process support under MS Windows, soon to die.
    Copyright (C) 1992, 1995 Free Software Foundation, Inc.
 
 This file is part of XEmacs.
@@ -24,15 +24,16 @@ Boston, MA 02111-1307, USA.
 /* Adapted for XEmacs by David Hobley <david@spook-le0.cia.com.au> */
 /* Synced with FSF Emacs 19.34.6 by Marc Paquette <marcpa@cam.org> */
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <io.h>
-#include <fcntl.h>
-#include <signal.h>
+/* #### This ENTIRE file is only around because of callproc.c, which
+   in turn is only used in batch mode.
+
+   We only need two things to get rid of both this and callproc.c:
+
+   -- my `stderr-proc' ws, which adds support for a separate stderr
+      in asynch. subprocesses. (it's a feature in `old-call-process-internal'.)
+   -- a noninteractive event loop that supports processes.
+*/
 
-/* must include CRT headers *before* config.h */
-/* #### I don't believe it - martin */
 #include <config.h>
 #undef signal
 #undef wait
@@ -41,7 +42,6 @@ Boston, MA 02111-1307, USA.
 #undef kill
 
 #include <windows.h>
-#include <sys/socket.h>
 #ifdef HAVE_A_OUT_H
 #include <a.out.h>
 #endif
@@ -85,7 +85,7 @@ Lisp_Object Vwin32_start_process_share_console;
    but is useful for Win32 processes on both Win95 and NT as well.  */
 Lisp_Object Vwin32_pipe_read_delay;
 
-/* Control whether stat() attempts to generate fake but hopefully
+/* Control whether xemacs_stat() attempts to generate fake but hopefully
    "accurate" inode values, by hashing the absolute truenames of files.
    This should detect aliasing between long and short names, but still
    allows the possibility of hash collisions.  */
@@ -111,7 +111,7 @@ void _DebPrint (const char *fmt, ...)
 #endif
 }
 
-/* sys_signal moved to nt.c. It's now called msw_signal... */
+/* sys_signal moved to nt.c. It's now called mswindows_signal... */
 
 /* Defined in <process.h> which conflicts with the local copy */
 #define _P_NOWAIT 1
@@ -170,7 +170,7 @@ delete_child (child_process *cp)
   /* Should not be deleting a child that is still needed. */
   for (i = 0; i < MAXDESC; i++)
     if (fd_info[i].cp == cp)
-      abort ();
+      ABORT ();
 
   if (!CHILD_ACTIVE (cp))
     return;
@@ -252,7 +252,7 @@ _sys_read_ahead (int fd)
       || (fd_info[fd].flags & FILE_READ) == 0)
     {
       /* fd is not a pipe or socket */
-      abort ();
+      ABORT ();
     }
   
   cp->status = STATUS_READ_IN_PROGRESS;
@@ -404,7 +404,7 @@ create_child (const char *exe, char *cmdline, char *env,
   SECURITY_DESCRIPTOR sec_desc;
   char dir[ MAXPATHLEN ];
   
-  if (cp == NULL) abort ();
+  if (cp == NULL) ABORT ();
   
   xzero (start);
   start.cb = sizeof (start);
@@ -420,8 +420,10 @@ create_child (const char *exe, char *cmdline, char *env,
   start.hStdError = GetStdHandle (STD_ERROR_HANDLE);
 
   /* Explicitly specify no security */
+  /* #### not supported under win98, but will go away */
   if (!InitializeSecurityDescriptor (&sec_desc, SECURITY_DESCRIPTOR_REVISION))
     goto EH_Fail;
+  /* #### not supported under win98, but will go away */
   if (!SetSecurityDescriptorDacl (&sec_desc, TRUE, NULL, FALSE))
     goto EH_Fail;
   sec_attrs.nLength = sizeof (sec_attrs);
@@ -508,7 +510,7 @@ sys_spawnve (int mode, const char *cmdname,
     }
 
   /* Handle executable names without an executable suffix.  */
-  program = make_string (cmdname, strlen (cmdname));
+  program = build_string (cmdname);
   GCPRO1 (program);
   if (NILP (Ffile_executable_p (program)))
     {
@@ -791,7 +793,7 @@ find_child_console (HWND hwnd, child_process * cp)
 
       GetClassName (hwnd, window_class, sizeof (window_class));
       if (strcmp (window_class,
-                 msw_windows9x_p()
+                 mswindows_windows9x_p()
                  ? "tty"
                  : "ConsoleWindowClass") == 0)
        {
@@ -884,7 +886,7 @@ sys_kill (int pid, int sig)
       if (NILP (Vwin32_start_process_share_console) && cp && cp->hwnd)
        {
 #if 1
-         if (msw_windows9x_p())
+         if (mswindows_windows9x_p())
            {
 /*
    Another possibility is to try terminating the VDM out-right by
@@ -1038,12 +1040,6 @@ set_process_dir (const char * dir)
 /* Some miscellaneous functions that are Windows specific, but not GUI
    specific (ie. are applicable in terminal or batch mode as well).  */
 
-/* lifted from fileio.c  */
-#define CORRECT_DIR_SEPS(s) \
-  do { if ('/' == DIRECTORY_SEP) dostounix_filename (s); \
-       else unixtodos_filename (s); \
-  } while (0)
-
 DEFUN ("win32-short-file-name", Fwin32_short_file_name, 1, 1, "", /*
   Return the short file name version (8.3) of the full path of FILENAME.
 If FILENAME does not exist, return nil.
@@ -1268,6 +1264,7 @@ If successful, the new locale id is returned, otherwise nil.
   if (!IsValidLocale (XINT (lcid), LCID_SUPPORTED))
     return Qnil;
 
+  /* #### not supported under win98, but will go away */
   if (!SetThreadLocale (XINT (lcid)))
     return Qnil;
 
@@ -1329,7 +1326,7 @@ When non-nil, they show their window in the method of their choice.
               &Vwin32_start_process_share_console /*
     When nil, processes started via start-process are given a new console.
 When non-nil, they share the Emacs console; this has the limitation of
-allowing only only DOS subprocess to run at a time (whether started directly
+allowing only one DOS subprocess to run at a time (whether started directly
 or indirectly by Emacs), and preventing Emacs from cleanly terminating the
 subprocess group, but may allow Emacs to interrupt a subprocess that doesn't
 otherwise respond to interrupts from Emacs.