changeset 22550:4ec5c343db1f

(Fcall_process): Handle third argument BUFFER consistently when it is an integer or a list.
author Richard M. Stallman <rms@gnu.org>
date Tue, 23 Jun 1998 03:07:05 +0000
parents bb42066bb94a
children 10770ff8e88f
files src/callproc.c
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/callproc.c	Tue Jun 23 01:55:31 1998 +0000
+++ b/src/callproc.c	Tue Jun 23 03:07:05 1998 +0000
@@ -227,7 +227,8 @@
 
 #ifndef subprocesses
   /* Without asynchronous processes we cannot have BUFFER == 0.  */
-  if (nargs >= 3 && INTEGERP (args[2]))
+  if (nargs >= 3 
+      && (INTEGERP (CONSP (args[2]) ? XCAR (args[2]) : args[2])
     error ("Operating system cannot handle asynchronous subprocesses");
 #endif /* subprocesses */
 
@@ -271,9 +272,10 @@
     /* If BUFFER is nil, we must read process output once and then
        discard it, so setup coding system but with nil.  If BUFFER is
        an integer, we can discard it without reading.  */
-    if (nargs < 3 || NILP (args[2]))
+    if (nargs < 3 || NILP (args[2])
+	|| (CONSP (args[2]) && NILP (XCAR (args[2]))))
       setup_coding_system (Qnil, &process_coding);
-    else if (!INTEGERP (args[2]))
+    else if (!INTEGERP (CONSP (args[2]) ? XCAR (args[2]) : args[2]))
       {
 	val = Qnil;
 	if (!NILP (Vcoding_system_for_read))
@@ -333,7 +335,7 @@
 
       if (!(EQ (buffer, Qnil)
 	    || EQ (buffer, Qt)
-	    || XFASTINT (buffer) == 0))
+	    || INTEGERP (buffer)))
 	{
 	  Lisp_Object spec_buffer;
 	  spec_buffer = buffer;