From: Perl 5 Porters Date: Fri, 12 Jan 1996 02:05:04 +0000 (+0000) Subject: perl 5.002beta2 patch: doop.c X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1476d272ad11d4ee4160587660fab223f7373e88;p=p5sagit%2Fp5-mst-13.2.git perl 5.002beta2 patch: doop.c Chip's patch to use STDCHAR and U8 nearly everywhere instead of assuming 8-bit chars or ~(char) 0 == 0xff. --- diff --git a/doop.c b/doop.c index d861599..7f00f04 100644 --- a/doop.c +++ b/doop.c @@ -32,22 +32,22 @@ SV *sv; OP *arg; { register short *tbl; - register char *s; - register I32 matches = 0; + register U8 *s; + register U8 *send; + register U8 *d; register I32 ch; - register char *send; - register char *d; + register I32 matches = 0; register I32 squash = op->op_private & OPpTRANS_SQUASH; STRLEN len; if (SvREADONLY(sv)) croak(no_modify); - tbl = (short*) cPVOP->op_pv; - s = SvPV(sv, len); + tbl = (short*)cPVOP->op_pv; + s = (U8*)SvPV(sv, len); if (!len) return 0; if (!SvPOKp(sv)) - s = SvPV_force(sv, len); + s = (U8*)SvPV_force(sv, len); (void)SvPOK_only(sv); send = s + len; if (!tbl || !s) @@ -55,7 +55,7 @@ OP *arg; DEBUG_t( deb("2.TBL\n")); if (!op->op_private) { while (s < send) { - if ((ch = tbl[*s & 0377]) >= 0) { + if ((ch = tbl[*s]) >= 0) { matches++; *s = ch; } @@ -65,7 +65,7 @@ OP *arg; else { d = s; while (s < send) { - if ((ch = tbl[*s & 0377]) >= 0) { + if ((ch = tbl[*s]) >= 0) { *d = ch; if (matches++ && squash) { if (d[-1] == *d) @@ -82,7 +82,7 @@ OP *arg; } matches += send - d; /* account for disappeared chars */ *d = '\0'; - SvCUR_set(sv, d - SvPVX(sv)); + SvCUR_set(sv, d - (U8*)SvPVX(sv)); } SvSETMAGIC(sv); return matches;