(U-000212AE): Use A-IWDSU+212E1 instead of A-IWDSU+8881 as its mother.
[chise/xemacs-chise.git.1] / src / process.c
index f555019..127fc17 100644 (file)
@@ -1,5 +1,5 @@
 /* Asynchronous subprocess control for XEmacs.
 /* Asynchronous subprocess control for XEmacs.
-   Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995
+   Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995, 2003
    Free Software Foundation, Inc.
    Copyright (C) 1995 Sun Microsystems, Inc.
    Copyright (C) 1995, 1996 Ben Wing.
    Free Software Foundation, Inc.
    Copyright (C) 1995 Sun Microsystems, Inc.
    Copyright (C) 1995, 1996 Ben Wing.
@@ -352,7 +352,7 @@ get_process (Lisp_Object name)
 #endif
 
   /* This may be called during a GC from process_send_signal() from
 #endif
 
   /* This may be called during a GC from process_send_signal() from
-     kill_buffer_processes() if emacs decides to abort(). */
+     kill_buffer_processes() if emacs decides to ABORT(). */
   if (PROCESSP (name))
     return name;
   else if (STRINGP (name))
   if (PROCESSP (name))
     return name;
   else if (STRINGP (name))
@@ -564,8 +564,8 @@ BUFFER is the buffer or (buffer-name) to associate with the process.
  with any buffer
 Third arg is program file name.  It is searched for as in the shell.
 Remaining arguments are strings to give program as arguments.
  with any buffer
 Third arg is program file name.  It is searched for as in the shell.
 Remaining arguments are strings to give program as arguments.
-INCODE and OUTCODE specify the coding-system objects used in input/output
- from/to the process.
+If bound, `coding-system-for-read' and `coding-system-for-write' specify
+ the coding-system objects used in input from and output to the process.
 */
        (int nargs, Lisp_Object *args))
 {
 */
        (int nargs, Lisp_Object *args))
 {
@@ -573,6 +573,7 @@ INCODE and OUTCODE specify the coding-system objects used in input/output
   /* !!#### This function has not been Mule-ized */
   Lisp_Object buffer, name, program, process, current_dir;
   Lisp_Object tem;
   /* !!#### This function has not been Mule-ized */
   Lisp_Object buffer, name, program, process, current_dir;
   Lisp_Object tem;
+  int i;
   int speccount = specpdl_depth ();
   struct gcpro gcpro1, gcpro2, gcpro3;
 
   int speccount = specpdl_depth ();
   struct gcpro gcpro1, gcpro2, gcpro3;
 
@@ -589,6 +590,8 @@ INCODE and OUTCODE specify the coding-system objects used in input/output
 
   CHECK_STRING (name);
   CHECK_STRING (program);
 
   CHECK_STRING (name);
   CHECK_STRING (program);
+  for (i = 3; i < nargs; ++i)
+    CHECK_STRING (args[i]);
 
   /* Make sure that the child will be able to chdir to the current
      buffer's current directory, or its unhandled equivalent.  We
 
   /* Make sure that the child will be able to chdir to the current
      buffer's current directory, or its unhandled equivalent.  We
@@ -756,8 +759,8 @@ against lost packets.
 
   event_stream_select_process (XPROCESS (process));
 
 
   event_stream_select_process (XPROCESS (process));
 
-  UNGCPRO;
   NUNGCPRO;
   NUNGCPRO;
+  UNGCPRO;
   return process;
 }
 
   return process;
 }