diff src/callproc.c @ 56135:5407da499273

Update copyright.
author Kim F. Storm <storm@cua.dk>
date Wed, 16 Jun 2004 15:10:55 +0000
parents 659b9b404c02
children 80340a31718d
line wrap: on
line diff
--- a/src/callproc.c	Wed Jun 16 14:17:01 2004 +0000
+++ b/src/callproc.c	Wed Jun 16 15:10:55 2004 +0000
@@ -1,5 +1,5 @@
 /* Synchronous subprocess invocation for GNU Emacs.
-   Copyright (C) 1985,86,87,88,93,94,95,99, 2000, 2001
+   Copyright (C) 1985,86,87,88,93,94,95,99, 2000,01,02,03,04
    Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -130,6 +130,8 @@
    this is exit code of synchronous subprocess.  */
 int synch_process_retcode;
 
+extern Lisp_Object Qredisplay_dont_pause;
+
 extern Lisp_Object Vdoc_file_name;
 
 extern Lisp_Object Vfile_name_coding_system, Vdefault_file_name_coding_system;
@@ -220,9 +222,9 @@
   int fd[2];
   int filefd;
   register int pid;
-  char buf[16384];
+  char buf[16384*4];
   char *bufptr = buf;
-  int bufsize = 16384;
+  int bufsize = sizeof buf;
   int count = SPECPDL_INDEX ();
 
   register const unsigned char **new_argv
@@ -771,6 +773,7 @@
 
 	    if (this_read == 0)
 	      {
+//		fprintf(stderr, "read 0, total=%d\n", total_read);
 		process_coding.mode |= CODING_MODE_LAST_BLOCK;
 		break;
 	      }
@@ -778,6 +781,8 @@
 	    nread += this_read;
 	    total_read += this_read;
 
+//	    fprintf(stderr, "read %d+%d of %d, total=%d\n", nread, this_read, bufsize, total_read);
+
 	    if (display_on_the_fly)
 	      break;
 	  }
@@ -830,6 +835,8 @@
 		    continue;
 		  }
 
+//		fprintf(stderr, "produced %d\n", process_coding.produced);
+
 		if (process_coding.produced > 0)
 		  insert_1_both (decoding_buf, process_coding.produced_char,
 				 process_coding.produced, 0, 1, 0);
@@ -929,10 +936,15 @@
 
 	if (!NILP (display) && INTERACTIVE)
 	  {
+	    extern int windows_or_buffers_changed;
+	    int count = SPECPDL_INDEX ();
+
 	    if (first)
 	      prepare_menu_bars ();
 	    first = 0;
+	    specbind (Qredisplay_dont_pause, Qt);
 	    redisplay_preserve_echo_area (1);
+	    unbind_to (count, Qnil);
 	  }
 	immediate_quit = 1;
 	QUIT;