diff options
author | Kim F. Storm <storm@cua.dk> | 2004-06-16 15:10:55 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2004-06-16 15:10:55 +0000 |
commit | a0ecb2ac8eb6d2e72f255fe8e4acb607486d6c1d (patch) | |
tree | c811e23433c231305b9d4752b2f47cd1e7855fba /src/callproc.c | |
parent | e3d844638f6146703303c0c51e39916ea239b11b (diff) | |
download | emacs-a0ecb2ac8eb6d2e72f255fe8e4acb607486d6c1d.tar.gz emacs-a0ecb2ac8eb6d2e72f255fe8e4acb607486d6c1d.tar.bz2 emacs-a0ecb2ac8eb6d2e72f255fe8e4acb607486d6c1d.zip |
Update copyright.
Diffstat (limited to 'src/callproc.c')
-rw-r--r-- | src/callproc.c | 18 |
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; |