*** empty log message ***
authorroot <root>
Wed, 13 Jul 2005 02:47:02 +0000 (02:47 +0000)
committerroot <root>
Wed, 13 Jul 2005 02:47:02 +0000 (02:47 +0000)
Changes
src/command.C
src/version.h

diff --git a/Changes b/Changes
index 1f6b9bc712ab61a01115317f438e27aa7680bdcb..8c989af1e2bddc695d8c88bca13f06ff8bdfcffa 100644 (file)
--- 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
index 31cd888326bcf4c066f34a569ec8a399bb3ffe79..60c9f6e34809e4da216a4ba0a19cf39465781321 100644 (file)
@@ -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;
index f022aff22b4c984f5a71db11d612ceb74a1308e9..2a530e463226c3922874740b87e7c0616751a9f1 100644 (file)
@@ -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"