EBCDIC: another "can't happen".
Jarkko Hietaniemi [Tue, 12 Feb 2002 15:03:58 +0000 (15:03 +0000)]
p4raw-id: //depot/perl@14660

utf8.c

diff --git a/utf8.c b/utf8.c
index 2afcbeb..6c9cebd 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -1323,7 +1323,11 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *norma
 
                   for (t = ustrp, tend = t + *lenp; t < tend; t += tlen) {
                        UV c = utf8_to_uvchr(t, &tlen);
-                       d = uvchr_to_utf8(d, UNI_TO_NATIVE(c));
+
+                       if (tlen > 0)
+                            d = uvchr_to_utf8(d, UNI_TO_NATIVE(c));
+                       else
+                            break;
                   }
                   *lenp = d - tmpbuf; 
                   Copy(tmpbuf, ustrp, *lenp, U8);