From: Nick Ing-Simmons Date: Sun, 18 Mar 2001 10:57:29 +0000 (+0000) Subject: Fix pragma/utf8.t # 15 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=be4731d2ab91c4f6213bf88a0084f6128a0db383;p=p5sagit%2Fp5-mst-13.2.git Fix pragma/utf8.t # 15 - if toke.c is processing a SvUTF8 string then single quoted '...' etc. are SvUTF8 as well. p4raw-id: //depot/perlio@9196 --- diff --git a/toke.c b/toke.c index b802512..3652c11 100644 --- a/toke.c +++ b/toke.c @@ -37,7 +37,7 @@ static I32 utf16rev_textfilter(pTHXo_ int idx, SV *sv, int maxlen); #define XENUMMASK 127 /*#define UTF (SvUTF8(PL_linestr) && !(PL_hints & HINT_BYTE))*/ -#define UTF (PL_hints & HINT_UTF8) +#define UTF ((PL_linestr && DO_UTF8(PL_linestr)) || PL_hints & HINT_UTF8) /* In variables name $^X, these are the legal values for X. * 1999-02-27 mjd-perl-patch@plover.com */ @@ -917,8 +917,11 @@ S_tokeq(pTHX_ SV *sv) if (s == send) goto finish; d = s; - if ( PL_hints & HINT_NEW_STRING ) + if ( PL_hints & HINT_NEW_STRING ) { pv = sv_2mortal(newSVpvn(SvPVX(pv), len)); + if (SvUTF8(sv)) + SvUTF8_on(pv); + } while (s < send) { if (*s == '\\') { if (s + 1 < send && (s[1] == '\\'))