Change 14758 by jhi@alpha on 2002/02/19 01:55:14

        Not extending enough.

Affected files ...

.... //depot/perl/pp.c#333 edit
.... //depot/perl/utf8.h#54 edit

Differences ...

==== //depot/perl/pp.c#333 (text) ====
Index: perl/pp.c
--- perl/pp.c.~1~       Mon Feb 18 19:00:05 2002
+++ perl/pp.c   Mon Feb 18 19:00:05 2002
@@ -3351,7 +3351,7 @@
        }
        else {
            (void)SvUPGRADE(TARG, SVt_PV);
-           SvGROW(TARG, (len * 2) + 1);
+           SvGROW(TARG, (len * UTF8_MAXLEN_UCLC) + 1);
            (void)SvPOK_only(TARG);
            d = (U8*)SvPVX(TARG);
            send = s + len;
@@ -3418,7 +3418,7 @@
        }
        else {
            (void)SvUPGRADE(TARG, SVt_PV);
-           SvGROW(TARG, (len * 2) + 1);
+           SvGROW(TARG, (len * UTF8_MAXLEN_UCLC) + 1);
            (void)SvPOK_only(TARG);
            d = (U8*)SvPVX(TARG);
            send = s + len;

==== //depot/perl/utf8.h#54 (text) ====
Index: perl/utf8.h
--- perl/utf8.h.~1~     Mon Feb 18 19:00:05 2002
+++ perl/utf8.h Mon Feb 18 19:00:05 2002
@@ -138,9 +138,11 @@
 /* how wide can a single UTF8 encoded character become */
 #define UTF8_MAXLEN 13
 /* how wide a character can become when upper/lowercased */
-#define UTF8_MAXLEN_UCLC (UTF8_MAXLEN*2)
+#define UTF8_MAXLEN_UCLC_MULT 3
+#define UTF8_MAXLEN_UCLC (UTF8_MAXLEN*UTF8_MAXLEN_UCLC_MULT)
 /* how wide a character can become when casefolded */
-#define UTF8_MAXLEN_FOLD (UTF8_MAXLEN*3)
+#define UTF8_MAXLEN_FOLD_MULT 3
+#define UTF8_MAXLEN_FOLD (UTF8_MAXLEN*UTF8_MAXLEN_FOLD_MULT)
 
 #define IN_BYTES (PL_curcop->op_private & HINT_BYTES)
 #define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)
End of Patch.

Reply via email to