Mercurial > emacs
changeset 94909:11f28d8c2c22
(update_frame_1): Check if tty output is still valid before flushing
it.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 13 May 2008 21:19:03 +0000 |
parents | 1215d390d74a |
children | 3c91cba34532 |
files | src/dispnew.c |
diffstat | 1 files changed, 16 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispnew.c Tue May 13 21:18:42 2008 +0000 +++ b/src/dispnew.c Tue May 13 21:19:03 2008 +0000 @@ -5302,22 +5302,26 @@ Also flush out if likely to have more than 1k buffered otherwise. I'm told that some telnet connections get really screwed by more than 1k output at once. */ - int outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f)->output); - if (outq > 900 - || (outq > 20 && ((i - 1) % preempt_count == 0))) + FILE *display_output = FRAME_TTY (f)->output; + if (display_output) { - fflush (FRAME_TTY (f)->output); - if (preempt_count == 1) + int outq = PENDING_OUTPUT_COUNT (display_output); + if (outq > 900 + || (outq > 20 && ((i - 1) % preempt_count == 0))) { + fflush (display_output); + if (preempt_count == 1) + { #ifdef EMACS_OUTQSIZE - if (EMACS_OUTQSIZE (0, &outq) < 0) - /* Probably not a tty. Ignore the error and reset - the outq count. */ - outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f->output)); + if (EMACS_OUTQSIZE (0, &outq) < 0) + /* Probably not a tty. Ignore the error and reset + the outq count. */ + outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f->output)); #endif - outq *= 10; - if (baud_rate <= outq && baud_rate > 0) - sleep (outq / baud_rate); + outq *= 10; + if (baud_rate <= outq && baud_rate > 0) + sleep (outq / baud_rate); + } } } }