summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2004-06-16 15:10:55 +0000
committerKim F. Storm <storm@cua.dk>2004-06-16 15:10:55 +0000
commita0ecb2ac8eb6d2e72f255fe8e4acb607486d6c1d (patch)
treec811e23433c231305b9d4752b2f47cd1e7855fba /src/callproc.c
parente3d844638f6146703303c0c51e39916ea239b11b (diff)
Update copyright.
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 73d81d81b18..10e98ad1a36 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -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 @@ int synch_process_termsig;
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 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
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 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
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 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
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 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
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 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
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;