repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 8292a994b8228f1033fa3afbf60902acbf7d0721: path_to: revision_to:
commit 8292a994b8228f1033fa3afbf60902acbf7d0721 Author: Marc LehmannDate: Sat Apr 26 03:37:18 2008 +0000 *** empty log message *** diff --git a/Changes b/Changes
--- a/Changes
+++ b/Changes
@@ -25,11 +25,15 @@ TODO: rxvt -font 10x20 -xrm "*.tabbed.font: 10x20" -pe tabbed
how does one affect the tab windows themselves? seems not to work anymore.
TODO: memory leak for((i=0;i<1000;++o)); do rxvtc -g 1x1 -e exit;done
+TODO: implement initial chdir for tabs by making it a resource?
+ - correctly reset the multibyte state to the initial one
+ after EILSEQ (patch by Neil Booth). This fixes the
+ issue of rxvt-unicode not properly displaying text after an illegal
+ sequence on NetBSD and probably other systems.
- made tabs moveable (based on a patch by Petr Machata).
- support relative paths for RXVT_SOCKET in urxvtd.
- better diagnostic on 0x0 window geometries.
-
-TODO: implement initial chdir for tabs by making it a resource?
+
9.02 Tue Jan 29 11:58:36 CET 2008
- the "exg makes everybody happy" release.
- fix build with !xft.
diff --git a/src/command.C b/src/command.C
--- a/src/command.C
+++ b/src/command.C
@@ -2326,7 +2326,10 @@ rxvt_term::next_char () NOTHROW
}
if (len == (size_t)-1)
- return (unsigned char)*cmdbuf_ptr++; // the _occasional_ latin1 character is allowed to slip through
+ {
+ mbrtowc (0, 0, 0, mbstate); // reset now undefined conversion state
+ return (unsigned char)*cmdbuf_ptr++; // the _occasional_ latin1 character is allowed to slip through
+ }
// assume wchar == unicode
cmdbuf_ptr += len;
diff --git a/src/misc.C b/src/misc.C
--- a/src/misc.C
+++ b/src/misc.C
@@ -40,7 +40,10 @@ rxvt_wcstombs (const wchar_t *str, int len)
ssize_t l = wcrtomb (dst, *str++, mbs);
if (l < 0)
- *dst++ = '?';
+ {
+ *dst++ = '?';
+ wcrtomb (0, 0, mbs); // reset undefined state
+ }
else
dst += l;
}
-----END OF PAGE-----