*
**** Alterations to Henry's code are...
****
- **** Copyright (c) 1991-2001, Larry Wall
+ **** Copyright (c) 1991-2002, Larry Wall
****
**** You may distribute under the terms of either the GNU General Public
**** License or the Artistic License, as specified in the README file.
STRLEN skip = do_utf8 ? UTF8SKIP(s) : 1;
if (reginclass(c, (U8*)s, do_utf8) ||
- (ANYOF_UNICODE_FOLD_SHARP_S(c, s, strend) &&
- (skip = 2))) {
+ (ANYOF_FOLD_SHARP_S(c, s, strend) &&
+ /* The assignment of 2 is intentional:
+ * for the sharp s, the skip is 2. */
+ (skip = SHARP_S_SKIP)
+ )) {
if (tmp && (norun || regtry(prog, s)))
goto got_it;
else
if ( f != c
&& (f == c1 || f == c2)
&& (ln == foldlen ||
- !ibcmp_utf8((char *)foldbuf,
+ !ibcmp_utf8((char *) foldbuf,
(char **)0, foldlen, do_utf8,
m,
(char **)0, ln, UTF))
if (l >= PL_regeol)
sayNO;
if (NATIVE_TO_UNI(*(U8*)s) !=
- utf8_to_uvchr((U8*)l, &ulen))
+ utf8_to_uvuni((U8*)l, &ulen))
sayNO;
l += ulen;
s ++;
if (l >= PL_regeol)
sayNO;
if (NATIVE_TO_UNI(*((U8*)l)) !=
- utf8_to_uvchr((U8*)s, &ulen))
+ utf8_to_uvuni((U8*)s, &ulen))
sayNO;
s += ulen;
l ++;
char *l = locinput;
char *e = PL_regeol;
- if (ibcmp_utf8(s, 0, ln, do_utf8,
- l, &e, 0, UTF)) {
+ if (ibcmp_utf8(s, 0, ln, UTF,
+ l, &e, 0, do_utf8)) {
/* One more case for the sharp s:
* pack("U0U*", 0xDF) =~ /ss/i,
* the 0xC3 0x9F are the UTF-8
/* If we might have the case of the German sharp s
* in a casefolding Unicode character class. */
- if (ANYOF_UNICODE_FOLD_SHARP_S(scan, locinput, PL_regeol)) {
- locinput += 2;
+ if (ANYOF_FOLD_SHARP_S(scan, locinput, PL_regeol)) {
+ locinput += SHARP_S_SKIP;
nextchr = UCHARAT(locinput);
}
else