regexec.c: Handle sharp s in middle of backref
authorKarl Williamson <public@khwilliamson.com>
Sun, 13 Feb 2011 03:28:17 +0000 (20:28 -0700)
committerKarl Williamson <public@khwilliamson.com>
Mon, 14 Feb 2011 15:41:39 +0000 (08:41 -0700)
This code handled some of the case of the LATIN SMALL LETTER SHARP S at
the beginning of a back ref, but not in the middle.  To do it easily,
just call the function that handles our full Unicode folding

regexec.c

index cf8a68f..1b608a1 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -4104,10 +4104,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
 
            s = PL_bostr + ln;
            if (type != REF     /* REF can do byte comparison */
-               && (utf8_target
-                    || (type == REFFU
-                        && (*s == (char) LATIN_SMALL_LETTER_SHARP_S
-                            || *locinput == (char) LATIN_SMALL_LETTER_SHARP_S))))
+               && (utf8_target || type == REFFU))
            { /* XXX handle REFFL better */
                char * limit = PL_regeol;