From 6f862ef62561e570c589fc623811a7afa10e253b Mon Sep 17 00:00:00 2001 From: root Date: Wed, 13 Jul 2005 02:47:02 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 6 +++++- src/command.C | 20 ++++++++++++++------ src/version.h | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Changes b/Changes index 1f6b9bc7..8c989af1 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,4 @@ -TODO: Make change? [y... flood freezes until outputter is being killed +TODO: yes|perl -pe chomp; flood freezes until outputter is being killed TODO: do font request caching, might help rxvtd on some machines TODO: safer command: keymap processing. TODO: "slow" rendering mode for bidi and scripts @@ -12,11 +12,15 @@ WISH: OnTheSpot editing, or maybe switch to miiiiiiif WISH: tabbed windows (hey, just use screen...) WISH: just for fun, do shade and tint with XRender. +5.7 Wed Jul 13 04:46:33 CEST 2005 - implement some useful (hopefully) options for rxvtd. - separate and improved rxvtc(1) and rxvtd(1) manpages. - fix a bug that caused segfaults on startup on systems that do not support local unix connections, e.g cygwin. (btw, I didn't even know about the -rootless and -multiwindow Cygwin/X modes). + - large amounts of text without control sequences or newlines + could almost freeze output. This has been fixed by adding extra + refreshes in these cases (also a problem in oriignal rxvt). 5.6 Sun Jun 26 22:11:13 CEST 2005 - R_SB_RXVT bitset value was 0, so rxvt scrollbar was initialised diff --git a/src/command.C b/src/command.C index 31cd8883..60c9f6e3 100644 --- a/src/command.C +++ b/src/command.C @@ -2648,6 +2648,7 @@ rxvt_term::cmd_parse () bool refreshnow = false; int nlines = 0; unicode_t *str = buf; + unicode_t *eol = str + min (TermWin.ncol, UBUFSIZ); for (;;) { @@ -2656,7 +2657,7 @@ rxvt_term::cmd_parse () *str++ = ch; - if (ch == C0_LF) + if (ch == C0_LF || str >= eol) { nlines++; refresh_count++; @@ -2675,13 +2676,20 @@ rxvt_term::cmd_parse () scr_add_lines (buf, nlines, str - buf); nlines = 0; str = buf; + eol = str + min (TermWin.ncol, UBUFSIZ); + } + + if (str >= eol) + { + if (eol >= buf + UBUFSIZ) + { + ch = NOCHAR; + break; + } + else + eol = min (eol + TermWin.ncol, buf + UBUFSIZ); } - } - if (str >= buf + UBUFSIZ) - { - ch = NOCHAR; - break; } seq_begin = cmdbuf_ptr; diff --git a/src/version.h b/src/version.h index f022aff2..2a530e46 100644 --- a/src/version.h +++ b/src/version.h @@ -1,3 +1,3 @@ // VERSION _must_ be \d.\d+ -#define VERSION "5.6" -#define DATE "2005-06-26" +#define VERSION "5.7" +#define DATE "2005-07-13" -- 2.34.1