This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
toke.c: Fix bugs where UTF-8 is turned on in mid chunk
authorKarl Williamson <khw@cpan.org>
Mon, 13 Feb 2017 19:35:18 +0000 (12:35 -0700)
committerKarl Williamson <khw@cpan.org>
Tue, 14 Feb 2017 04:24:08 +0000 (21:24 -0700)
commitefa571ab2dff0efcc97f14f98ed11f9296cd27a7
tree07a927f327e3eca743e6d792b548f1a9c78da827
parent5d382c252dbb26302398c7fe38021a0f3c06b809
toke.c: Fix bugs where UTF-8 is turned on in mid chunk

Previous commits have tightened up the checking of UTF-8 for
well-formedness in the input program or string eval.  This is done in
lex_next_chunk and lex_start.  But it doesn't handle the case of

    use utf8; foo

because 'foo' is checked while UTF-8 is still off.  This solves that
problem by noticing when utf8 is turned on, and then rechecking at the
next opportunity.

See thread beginning at
http://nntp.perl.org/group/perl.perl5.porters/242916

This fixes [perl #130675].  A test will be added in a future commit

This catches some errors earlier than they used to be and aborts. so
some tests in the suite had to be split into multiple parts.
embed.fnc
embed.h
lib/utf8.t
mg.c
parser.h
proto.h
sv.c
t/lib/croak/toke
t/lib/croak/toke_l1
t/uni/parser.t
toke.c