locale.c: Extract out, fix, expand fcn to see if a locale is utf8
authorKarl Williamson <public@khwilliamson.com>
Mon, 24 Jun 2013 23:21:49 +0000 (17:21 -0600)
committerKarl Williamson <public@khwilliamson.com>
Sat, 6 Jul 2013 04:29:59 +0000 (22:29 -0600)
commit7d74bb61140f55c3b1a63a3ca309682bfca6a465
treeb3266f67688e6c9fa914b7c9db2f29f106e00b5d
parentb03f34cfd0bd2bbf204c9c669cd107351c03e4e3
locale.c: Extract out, fix, expand fcn to see if a locale is utf8

There was buggy code to see if the start-up locale is UTF-8.  This
commit extracts it into a separate function.

The bugs involved looking at the name of the locale to see if that
implies a UTF-8 name.  Prior to this commit, it looked at the
beginning of the locale name, whereas in reality, it is at the end, as
in "fr_FR.UTF8".

Also, it didn't look for the documented Windows name for UTF-8 locales
on those platforms.

The function is expanded to have an input category to find the utf8ness
of.  Thus it now works on any non-LC_ALL category, not just LC_CTYPE.

It is possible for categories to be in different locales, so that
LC_CTYPE is in a UTF-8 locale, and LC_NUMERIC isn't.  For the purposes
of PERL_UNICODE, the most applicable category is LC_CTYPE, so that is
the one used in its currently only call.
embed.fnc
embed.h
locale.c
proto.h