XEmacs 21.2.29 "Hestia".
[chise/xemacs-chise.git.1] / src / callproc.c
index 8694b38..5b2dfea 100644 (file)
@@ -43,7 +43,6 @@ Boston, MA 02111-1307, USA.  */
 
 #ifdef WINDOWSNT
 #define _P_NOWAIT 1    /* from process.h */
-#include <windows.h>
 #include "nt.h"
 #endif
 
@@ -68,7 +67,7 @@ Lisp_Object Vprocess_environment;
 volatile int synch_process_alive;
 
 /* Nonzero => this is a string explaining death of synchronous subprocess.  */
-CONST char *synch_process_death;
+const char *synch_process_death;
 
 /* If synch_process_death is zero,
    this is exit code of synchronous subprocess.  */
@@ -102,11 +101,8 @@ call_process_kill (Lisp_Object fdpid)
 static Lisp_Object
 call_process_cleanup (Lisp_Object fdpid)
 {
-  int fd = XINT (Fcar (fdpid));
+  int fd  = XINT (Fcar (fdpid));
   int pid = XINT (Fcdr (fdpid));
-#ifdef WINDOWSNT
-  HANDLE pHandle;
-#endif
 
   if (!call_process_exited &&
       EMACS_KILLPG (pid, SIGINT) == 0)
@@ -118,13 +114,14 @@ call_process_cleanup (Lisp_Object fdpid)
     message ("Waiting for process to die...(type C-g again to kill it instantly)");
 
 #ifdef WINDOWSNT
-    pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
-    if (pHandle == NULL)
-      {
+    {
+      HANDLE pHandle = OpenProcess (PROCESS_ALL_ACCESS, 0, pid);
+      if (pHandle == NULL)
        warn_when_safe (Qprocess, Qwarning,
                        "cannot open process (PID %d) for cleanup", pid);
-      }
-    wait_for_termination (pHandle);
+      else
+       wait_for_termination (pHandle);
+    }
 #else
     wait_for_termination (pid);
 #endif
@@ -351,7 +348,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you
       fd_error = open (NULL_DEVICE, O_WRONLY | OPEN_BINARY);
     else if (STRINGP (error_file))
       {
-       fd_error = open ((CONST char *) XSTRING_DATA (error_file),
+       fd_error = open ((const char *) XSTRING_DATA (error_file),
 #ifdef DOS_NT
                         O_WRONLY | O_TRUNC | O_CREAT | O_TEXT,
                         S_IREAD | S_IWRITE
@@ -504,10 +501,12 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you
        if (nread == 0)
          break;
 
+#if 0
 #ifdef DOS_NT
        /* Until we pull out of MULE things like
          make_decoding_input_stream(), we do the following which is
          less elegant. --marcpa */
+       /* We did. -- kkm */
        {
         int lf_count = 0;
         if (NILP (Vbinary_process_output)) {
@@ -515,6 +514,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you
          }
        }
 #endif
+#endif
 
        total_read += nread;
 
@@ -608,7 +608,7 @@ int
 void
 #endif
 child_setup (int in, int out, int err, char **new_argv,
-            CONST char *current_dir)
+            const char *current_dir)
 {
   char **env;
   char *pwd;
@@ -684,9 +684,10 @@ child_setup (int in, int out, int err, char **new_argv,
     {
       char **ep = env;
       char *envvar_external;
-      Bufbyte *envvar_internal = XSTRING_DATA (XCAR (tail));
 
-      GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA (envvar_internal, envvar_external);
+      TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (tail),
+                         C_STRING_ALLOCA, envvar_external,
+                         Qfile_name);
 
       /* See if envvar_external duplicates any string already in the env.
         If so, don't put it in.
@@ -762,8 +763,8 @@ child_setup (int in, int out, int err, char **new_argv,
 
 #ifdef WINDOWSNT
   /* Spawn the child.  (See ntproc.c:Spawnve).  */
-  cpid = spawnve (_P_NOWAIT, new_argv[0], (CONST char* CONST*)new_argv,
-                 (CONST char* CONST*)env);
+  cpid = spawnve (_P_NOWAIT, new_argv[0], (const char* const*)new_argv,
+                 (const char* const*)env);
   if (cpid == -1)
     /* An error occurred while trying to spawn the process.  */
     report_file_error ("Spawning child process", Qnil);
@@ -782,7 +783,7 @@ child_setup (int in, int out, int err, char **new_argv,
 }
 
 static int
-getenv_internal (CONST Bufbyte *var,
+getenv_internal (const Bufbyte *var,
                 Bytecount varlen,
                 Bufbyte **value,
                 Bytecount *valuelen)
@@ -845,12 +846,12 @@ When invoked interactively, prints the value in the echo area.
 /* A version of getenv that consults process_environment, easily
    callable from C.  */
 char *
-egetenv (CONST char *var)
+egetenv (const char *var)
 {
   Bufbyte *value;
   Bytecount valuelen;
 
-  if (getenv_internal ((CONST Bufbyte *) var, strlen (var), &value, &valuelen))
+  if (getenv_internal ((const Bufbyte *) var, strlen (var), &value, &valuelen))
     return (char *) value;
   else
     return 0;
@@ -868,19 +869,17 @@ init_callproc (void)
     char **envp;
     Vprocess_environment = Qnil;
     for (envp = environ; envp && *envp; envp++)
-      {
-       Vprocess_environment = Fcons (build_ext_string (*envp, FORMAT_OS),
-                                     Vprocess_environment);
-      }
+      Vprocess_environment =
+       Fcons (build_ext_string (*envp, Qfile_name), Vprocess_environment);
   }
 
   {
     /* Initialize shell-file-name from environment variables or best guess. */
 #ifdef WINDOWSNT
-    CONST char *shell = egetenv ("COMSPEC");
+    const char *shell = egetenv ("COMSPEC");
     if (!shell) shell = "\\WINNT\\system32\\cmd.exe";
 #else /* not WINDOWSNT */
-    CONST char *shell = egetenv ("SHELL");
+    const char *shell = egetenv ("SHELL");
     if (!shell) shell = "/bin/sh";
 #endif