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.