Improve heuristic for UTF-8 detection in "$!"
authorKarl Williamson <khw@cpan.org>
Fri, 18 Aug 2017 19:46:25 +0000 (13:46 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 18 Aug 2017 20:35:48 +0000 (14:35 -0600)
commita8f4b0c691d6f1b08948976e74087b646bf8c6ef
tree16450eb766a4f749c876d5007584fed9ee5541a6
parent9d8092f2bf23932b723d0dbded2b652c8d9b135e
Improve heuristic for UTF-8 detection in "$!"

Previously, the stringification of "$!" was considered to be UTF-8 if it
had any characters with the high bit set, and everything was
syntactically legal UTF-8.  This may to correctly guess on short strings
where there are only a few non-ASCII bytes.  This could happen in
languages based on the Latin script where many words don't use
non-ASCII.

This commit adds a check that the locale is a UTF-8 one.  That check is
a call to an already-existing subroutine which goes to some lengths to
get an accurate answer, and should be essentially completely reliable on
modern systems that have nl_langinfo() and/or mbtowc().

See the thread starting at
http://nntp.perl.org/group/perl.perl5.porters/245902
embed.fnc
embed.h
mg.c
proto.h