repo: rxvt-unicode-sixel
action: commit
revision: 
path_from: 
revision_from: 249ad854cc9827c44fa4604c3d633a69ff3b17f1:
path_to: 
revision_to: 
git.thebackupbox.net
rxvt-unicode-sixel
git clone git://git.thebackupbox.net/rxvt-unicode-sixel
commit 249ad854cc9827c44fa4604c3d633a69ff3b17f1
Author: Marc Lehmann 
Date:   Wed Jul 13 02:47:02 2005 +0000

    *** empty log message ***

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

-----END OF PAGE-----