This commit was generated by cvs2svn to compensate for changes in r7534,
[chise/xemacs-chise.git.1] / src / process.c
index f555019..b5f7103 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.
@@ -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;
 }