4 months agoShare common constants as file statics. smoke-me/jhi/krakatau
Jarkko Hietaniemi [Thu, 24 Jul 2014 02:32:45 +0000]
Share common constants as file statics.

4 months agoUse more of grok_number_flags()-proven technology.
Jarkko Hietaniemi [Thu, 24 Jul 2014 02:28:56 +0000]
Use more of grok_number_flags()-proven technology.

(the logic of when to declare overflow)
Hopefully this fixes the 32-bit systems.
The numeric.xs or grok.t were not right in 32-bit, either.

4 months agoReturn UV, not Size_t.
Jarkko Hietaniemi [Wed, 23 Jul 2014 14:52:14 +0000]
Return UV, not Size_t.

Major reason promised custom codepoints, they go beyond 32-bit.

4 months agoPartial fix for 32-bit but use64bitint (Win32).
Jarkko Hietaniemi [Wed, 23 Jul 2014 14:38:50 +0000]
Partial fix for 32-bit but use64bitint (Win32).

Also, comments.

4 months agoapidoc fixes, comment tweaks.
Jarkko Hietaniemi [Wed, 23 Jul 2014 14:01:08 +0000]
apidoc fixes, comment tweaks.

4 months agoVladimir Marek is now a perl author
Tony Cook [Wed, 23 Jul 2014 07:11:42 +0000]
Vladimir Marek is now a perl author

4 months agouse setenv() on Solaris
Vladimir Marek [Wed, 23 Jul 2014 07:05:59 +0000]
use setenv() on Solaris

4 months agobump $XS::APItest::VERSION for the grok_atou() merge
Tony Cook [Wed, 23 Jul 2014 04:21:42 +0000]
bump $XS::APItest::VERSION for the grok_atou() merge

4 months agoChad Granum is now a perl author
Tony Cook [Wed, 23 Jul 2014 03:51:30 +0000]
Chad Granum is now a perl author

4 months agoFix ok() that should be a like()
Chad Granum [Wed, 16 Jul 2014 06:10:37 +0000]
Fix ok() that should be a like()

4 months agoDelay loading Test::More
Chad Granum [Wed, 16 Jul 2014 06:10:20 +0000]
Delay loading Test::More

4 months agoFix legacy VMS feature checking status.
Craig A. Berry [Wed, 23 Jul 2014 01:38:29 +0000]
Fix legacy VMS feature checking status.

Back in 8dc9d3390b257b I consolidated two routines that were
almost identical -- except for their return values.  The routine
I kept returns the length of the equivalence name after logical
name translation, but some uses of it were checking it to see if
it was a successful VMS condition value.  Which means an odd length
(such as from "1") was successful but an even length (such as from
"ENABLE", the value recommended in the documentation) failed. So
fix those uses to check for a non-zero from simple_trnlnm.

For most features this only affected pre-7.3 systems, i.e., VMS
releases more than thirteen years old.  However, it also affected
features such as PERL_VMS_POSIX_EXIT that we have made up on our
own and are not tracking a CRTL feature.

4 months agoIntroduce maxend for paranoia. Also, comments.
Jarkko Hietaniemi [Tue, 22 Jul 2014 11:46:26 +0000]
Introduce maxend for paranoia.  Also, comments.

4 months agoAtol can be strtol in disguise, so grok_atou.
Jarkko Hietaniemi [Tue, 22 Jul 2014 01:29:22 +0000]
Atol can be strtol in disguise, so grok_atou.

4 months agoAdd strtoul and strtol to avoidables.
Jarkko Hietaniemi [Mon, 21 Jul 2014 19:16:33 +0000]
Add strtoul and strtol to avoidables.

4 months agoDocument grok_atou as strtoul replacement.
Jarkko Hietaniemi [Mon, 21 Jul 2014 19:15:42 +0000]
Document grok_atou as strtoul replacement.

4 months agoUse grok_atou instead of strtoul (no explicit strtol uses).
Jarkko Hietaniemi [Mon, 21 Jul 2014 18:59:58 +0000]
Use grok_atou instead of strtoul (no explicit strtol uses).

4 months agoAdvertise grok_atou.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:56:49 +0000]
Advertise grok_atou.

4 months agoAdd atoi to avoidables.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:53:10 +0000]
Add atoi to avoidables.

4 months agoAdd tests for grok_atou.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:07:05 +0000]
Add tests for grok_atou.

4 months agoUse grok_atou instead of atoi.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:50:54 +0000]
Use grok_atou instead of atoi.

Remaining atoi() uses include at least:
ext/DynaLoader/dl_aix.xs, os2/os2.c, vms/vms.c

4 months agoImplement grok_atou as safe/strict atoi replacement.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:41:20 +0000]
Implement grok_atou as safe/strict atoi replacement.

For earlier discussion, see:
http://www.nntp.perl.org/group/perl.perl5.porters/2013/10/msg208680.html
https://rt.perl.org/Public/Bug/Display.html?id=116118#txn-1250187

grok_atou is completely new code, instead of trying to bolt
new parameters/flags to grok_number.  This makes it easier to
be extremely strict, and not worry about breaking grok_number.

4 months agoUse %I64d instead of %lld for MinGW
Jan Dubois [Tue, 22 Jul 2014 23:50:24 +0000]
Use %I64d instead of %lld for MinGW

For older versions of MSVCRT.dll %lld is still using only 32 bits, breaking
32-bit builds defining USE_64_BIT_INT. %I64d is still supported on all newer
MSVCRT.dll releases, so there is really no reason to use %lld with MinGW at
all.

Fixes https://rt.perl.org/Ticket/Display.html?id=120851

4 months agoperlexperiment mentions features a lot, refer to the feature module
Alberto Simões [Tue, 22 Jul 2014 23:44:25 +0000]
perlexperiment mentions features a lot, refer to the feature module

4 months ago_LIB_VERSION scan was trying leading address twice.
Jarkko Hietaniemi [Tue, 22 Jul 2014 21:22:57 +0000]
_LIB_VERSION scan was trying leading address twice.

Important with PERL_GLOBAL_STRUCT_PRIVATE.

4 months agoMention libperl.t, and explain nm output some more.
Jarkko Hietaniemi [Tue, 22 Jul 2014 12:13:24 +0000]
Mention libperl.t, and explain nm output some more.

4 months agoMove two variable assignments outside of parens.
James E Keenan [Tue, 22 Jul 2014 01:02:53 +0000]
Move two variable assignments outside of parens.

Done for readability. Remove some unused variables. Move declaration of other
variable closer to where it is used. Rationalize indentation on lines
modified. Increment $VERSION.

For: RT #122282 (additional)

4 months agoOpen3.pm:spawn_with_handles remove alot of duplicate operators
Daniel Dragan [Sun, 13 Jul 2014 12:41:15 +0000]
Open3.pm:spawn_with_handles remove alot of duplicate operators

dont call fileno twice, don't deref key "open_as" 3 extra times.

4 months agoAvoid undefined warnings.
Jarkko Hietaniemi [Tue, 22 Jul 2014 01:12:09 +0000]
Avoid undefined warnings.

5 months agoIn FreeBSD memcmp symbol can disappear.
Jarkko Hietaniemi [Mon, 21 Jul 2014 17:29:27 +0000]
In FreeBSD memcmp symbol can disappear.

5 months agosv.h: Document SVt_INVLIST fields
Karl Williamson [Mon, 21 Jul 2014 15:43:04 +0000]
sv.h: Document SVt_INVLIST fields

5 months agoutf8_heavy.pl: Fix nit in comment
Karl Williamson [Tue, 8 Jul 2014 16:29:13 +0000]
utf8_heavy.pl: Fix nit in comment

5 months agocpan/Time-HiRes/t/itimer.t: better diagnostics
David Mitchell [Mon, 21 Jul 2014 15:02:23 +0000]
cpan/Time-HiRes/t/itimer.t: better diagnostics

This test is failing some smokes. Add better diagnostics to see what's
going on.

Since this is a CPAN-first module, this commit either needs backing out at
some point, or merging upstream.

5 months agoDisallow importing functions from UNIVERSAL
Dagfinn Ilmari Mannsåker [Sun, 8 Jun 2014 00:37:32 +0000]
Disallow importing functions from UNIVERSAL

It's been deprecated since v5.12.

5 months agoRegen podcheck db for new long verbatims in perlepigraph
Karl Williamson [Sun, 20 Jul 2014 16:38:25 +0000]
Regen podcheck db for new long verbatims in perlepigraph

5 months agoperlop: Grammatical nit.
Karl Williamson [Tue, 15 Jul 2014 22:05:12 +0000]
perlop: Grammatical nit.

'either' refers only to one of two possibilities.  Since this
has more than that, 'either' is grammatically incorrect.

5 months agoUpped version numbers for ModuleList
Abigail [Sun, 20 Jul 2014 15:25:04 +0000]
Upped version numbers for ModuleList

5 months agoBump version number from 5.21.2 to 5.21.3
Abigail [Sun, 20 Jul 2014 15:12:05 +0000]
Bump version number from 5.21.2 to 5.21.3

5 months agoNew perldelta.
Abigail [Sun, 20 Jul 2014 14:51:11 +0000]
New perldelta.

5 months agoInstalling Inline no longer installs Inline::C.
Abigail [Sun, 20 Jul 2014 12:43:59 +0000]
Installing Inline no longer installs Inline::C.

So, when testing cpan, install Inline::C.

5 months agoEpigraph for 5.21.2
Abigail [Sun, 20 Jul 2014 14:36:36 +0000]
Epigraph for 5.21.2

5 months agoMerge branch 'release-5.21.2' into blead
Abigail [Sun, 20 Jul 2014 14:16:38 +0000]
Merge branch 'release-5.21.2' into blead

Conflicts:
t/porting/libperl.t

5 months agoWarn against tmpfile, and mention perlclib.
Jarkko Hietaniemi [Sun, 20 Jul 2014 13:10:27 +0000]
Warn against tmpfile, and mention perlclib.

5 months agoSkip symbols for which Configure found no support.
Jarkko Hietaniemi [Sun, 20 Jul 2014 12:00:59 +0000]
Skip symbols for which Configure found no support.

5 months agoComments for dlopen.
Jarkko Hietaniemi [Sun, 20 Jul 2014 11:33:12 +0000]
Comments for dlopen.

5 months agoExpect sqrtl instead of sqrt if applicable.
Jarkko Hietaniemi [Sun, 20 Jul 2014 11:30:17 +0000]
Expect sqrtl instead of sqrt if applicable.

5 months agoAdjust 31e62fa1f35be3aceacc7fa62ce72d7131299a9a v5.21.2
Abigail [Sun, 20 Jul 2014 11:33:42 +0000]
Adjust 31e62fa1f35be3aceacc7fa62ce72d7131299a9a

It seems that 'sqrt' is not always called as a system call, in particular,
when compiling with -Dusemorebits

5 months agoAdd new release to perlhist
Abigail [Sun, 20 Jul 2014 02:08:08 +0000]
Add new release to perlhist

5 months agoAcknowledgement section of perldelta
Abigail [Sun, 20 Jul 2014 01:50:54 +0000]
Acknowledgement section of perldelta

5 months agoListed updated modules.
Abigail [Sun, 20 Jul 2014 01:42:20 +0000]
Listed updated modules.

5 months agoUpdate Module::CoreList for 5.21.2
Abigail [Sun, 20 Jul 2014 01:05:59 +0000]
Update Module::CoreList for 5.21.2

5 months agoRevert "Update HTTP-Tiny to CPAN version 0.044"
Abigail [Sat, 19 Jul 2014 22:50:34 +0000]
Revert "Update HTTP-Tiny to CPAN version 0.044"

This reverts commit 43bf4e6652b9fc743b1dbbc5153ced8b08779e84.

HTTP::Tiny contains tests that requires a connection to www.example.com.
These tests fail if run behind a firewall.

5 months agoAdd fgets+tmpfile to avoidables, and add comments.
Jarkko Hietaniemi [Sat, 19 Jul 2014 14:03:15 +0000]
Add fgets+tmpfile to avoidables, and add comments.

5 months agoAdd freebsd support.
Jarkko Hietaniemi [Sat, 19 Jul 2014 13:51:38 +0000]
Add freebsd support.

5 months agoParsing linux input in darwin, and vice versa.
Jarkko Hietaniemi [Thu, 17 Jul 2014 10:23:21 +0000]
Parsing linux input in darwin, and vice versa.

5 months agoAdd comments.
Jarkko Hietaniemi [Wed, 16 Jul 2014 07:17:06 +0000]
Add comments.

5 months agoScan for expected and unwanted undef (libc) symbols.
Jarkko Hietaniemi [Sun, 13 Jul 2014 13:13:30 +0000]
Scan for expected and unwanted undef (libc) symbols.

We would expect to see e.g. chmod() being used,
but we do not want to see e.g. gets() being used, ever.

5 months agoSometimes Darwin has the string constants in cstring section.
Jarkko Hietaniemi [Mon, 14 Jul 2014 21:31:19 +0000]
Sometimes Darwin has the string constants in cstring section.

At least in OS X 10.7.

Resolves the darwin x86 part of RT #12267 (the failing PL_no_mem test).

5 months agotest.pl:eq_array() is enough.
Jarkko Hietaniemi [Sun, 13 Jul 2014 12:44:33 +0000]
test.pl:eq_array() is enough.

No bad is_deeply() emulation necessary.

5 months agoMore debugging output.
Jarkko Hietaniemi [Sun, 13 Jul 2014 06:00:58 +0000]
More debugging output.

5 months agoHandle darwin ppc nm output, reenable test.
Jarkko Hietaniemi [Sun, 13 Jul 2014 05:57:45 +0000]
Handle darwin ppc nm output, reenable test.

Not darwin ppc in particular: handle 32-bit nm output, in general.
Resolves part of RT #122267.

5 months agoAllow reading nm output from a file (or STDIN).
Jarkko Hietaniemi [Sun, 13 Jul 2014 05:49:50 +0000]
Allow reading nm output from a file (or STDIN).

5 months agoChanges for 5.21.1 -> 5.21.2.
Abigail [Sat, 19 Jul 2014 21:25:34 +0000]
Changes for 5.21.1 -> 5.21.2.

Not included the parts that are automated (module changes and acknowledgements).

5 months agoTick off the 5.20.0 and 5.20.1 releases.
Abigail [Sat, 19 Jul 2014 16:36:11 +0000]
Tick off the 5.20.0 and 5.20.1 releases.

5 months ago"all question marks" is ambigious.
Abigail [Sat, 19 Jul 2014 16:34:08 +0000]
"all question marks" is ambigious.

Because if just a single question mark is used, it means the release
manager is unknown. Only if multiple question marks are used it
means it isn't known whether this release will happen.

5 months agoperlpolicy - Add encoding to fix podcheck.t following 0c6082f411
Steve Hay [Fri, 18 Jul 2014 14:59:34 +0000]
perlpolicy - Add encoding to fix podcheck.t following 0c6082f411

5 months agoperlpolicy: update list of moderators
Ricardo Signes [Fri, 18 Jul 2014 13:03:52 +0000]
perlpolicy: update list of moderators

5 months agoNote that ExtUtils::Manifest has been upgraded to 1.64
Steve Hay [Fri, 18 Jul 2014 07:48:32 +0000]
Note that ExtUtils::Manifest has been upgraded to 1.64

The EXCLUDED files are also now different.

5 months agoperlpolicy - Note that minimal build fixes are acceptable for maint too
Steve Hay [Fri, 18 Jul 2014 07:36:15 +0000]
perlpolicy - Note that minimal build fixes are acceptable for maint too

Changes like 31114fe991, which has just been cherry-picked into maint-5.20,
should be allowed.

5 months agouconfig.h again
H.Merijn Brand [Thu, 17 Jul 2014 12:45:47 +0000]
uconfig.h again

I am so sorry

5 months agocut-n-paste error in comment for dladdr in config_h.SH for Condifure
H.Merijn Brand [Thu, 17 Jul 2014 12:31:43 +0000]
cut-n-paste error in comment for dladdr in config_h.SH for Condifure

5 months agoUpdate HTTP-Tiny to CPAN version 0.044
Chris 'BinGOs' Williams [Thu, 17 Jul 2014 10:24:32 +0000]
Update HTTP-Tiny to CPAN version 0.044

  [DELTA]

0.044     2014-07-16 23:46:09-04:00 America/New_York

    [CHANGED]

    - Providing a custom 'Host' header is now a fatal exception.  Previously, it
      was silently ignored, as the RFC mandates that Host be set from the
      URL, but ignoring it could lead to unexpected, confusing errors.

    - optimized URL splitting

    - Passing 'undef' for any proxy attribute will prevent HTTP::Tiny from
      setting the proxy from the environment.

5 months agoMerge branch '122300-extutils-manifest' into blead
James E Keenan [Tue, 15 Jul 2014 22:54:47 +0000]
Merge branch '122300-extutils-manifest' into blead

5 months agouse just the import sub from Exporter
Karen Etheridge [Tue, 15 Jul 2014 00:25:46 +0000]
use just the import sub from Exporter

5 months agoNeed to increment $VERSION in ExtUtils::Manifest.
James E Keenan [Tue, 15 Jul 2014 22:36:29 +0000]
Need to increment $VERSION in ExtUtils::Manifest.

5 months agouse warnings; convert "use vars" to "our"
Karen Etheridge [Tue, 15 Jul 2014 00:19:36 +0000]
use warnings; convert "use vars" to "our"

5 months agoadd vim swap files to the ignored list for MANIFEST.SKIP.
Karen Etheridge [Mon, 30 Jan 2012 21:04:43 +0000]
add vim swap files to the ignored list for MANIFEST.SKIP.

5 months agoRT 72933: Ignore files from prove
brian d foy [Tue, 6 Dec 2011 09:42:43 +0000]
RT 72933: Ignore files from prove

5 months agoThis should be automated!
H.Merijn Brand [Tue, 15 Jul 2014 14:17:48 +0000]
This should be automated!

5 months agoRegen Configure after backports
H.Merijn Brand [Tue, 15 Jul 2014 14:05:53 +0000]
Regen Configure after backports

5 months agoFile::Copy does not overwrite read-only files
Alexandr Ciornii [Sun, 16 Mar 2014 12:12:42 +0000]
File::Copy does not overwrite read-only files

5 months agorefactor pp_ref
Daniel Dragan [Sun, 13 Jul 2014 10:48:25 +0000]
refactor pp_ref

similar to commmit b3cf48215c

-removed:
  -4/-8 pop on SP
  +4/+8 push on SP
  PUTBACK
  1 non vol register save/restore (TARG not saved across the sv_ref())

TARG is not computed if the SV isn't a reference, so the PL_sv_no branch is
slightly faster. On VC 2003 32 bit miniperl, this func dropped from 0x6D to
0x58 bytes of machine code.

5 months agooptimize PathTools to not try to load XS on miniperl
Daniel Dragan [Mon, 14 Jul 2014 05:10:52 +0000]
optimize PathTools to not try to load XS on miniperl

this will slightly speed up perl's build time by not loading XSLoader.pm
and DynaLoader.pm into the process, and then die()+eval trap when trying
to load the XS module.

Tony: update perldelta message to avoid a broken link

5 months agoskip_all on darwin until nm peculiarities can be straighted out.
James E Keenan [Sun, 13 Jul 2014 02:16:23 +0000]
skip_all on darwin until nm peculiarities can be straighted out.

For: RT #122267

5 months agolocale.c: Improve some comments
Karl Williamson [Fri, 11 Jul 2014 22:33:26 +0000]
locale.c: Improve some comments

5 months agolocale.c: Fix some unused code for potential future use
Karl Williamson [Fri, 11 Jul 2014 22:29:54 +0000]
locale.c: Fix some unused code for potential future use

This code extends the heuristics used to determine if a locale is UTF-8
or not on older platforms.  It has been #ifdef'd out because it only
added a little value on dromedary.  Now the previous commit has added
new heuristics, and tests on dromedary show that this adds nothing to
that.  But I'm leaving it in the source in case it might ever prove
useful.  In order to test it, I compiled it and found some problems with
the earlier version that this now fixes.

5 months agolocale.c: Add new heuristic for finding if locale is UTF-8
Karl Williamson [Fri, 11 Jul 2014 22:24:39 +0000]
locale.c: Add new heuristic for finding if locale is UTF-8

On older platforms that don't conform to POSIX 2001 nor C99, heuristics
are employed to try to determine if a locale is UTF-8 or not.  This
commit improves those heuristics by looking at names of the months and
days of the week to see if they are UTF-8 or not.  This is done if
looking at the currency symbol failed to help.

5 months agolocale.c: White-space only
Karl Williamson [Fri, 11 Jul 2014 22:23:10 +0000]
locale.c: White-space only

Indent and outdent blocks of code to conform to newly formed or removed
braces

5 months agolocale.c: Refactor UTF8ness of currency symbol code
Karl Williamson [Fri, 11 Jul 2014 22:12:22 +0000]
locale.c: Refactor UTF8ness of currency symbol code

On older platforms that aren't C99 nor POSIX 2001, locale.c uses the
currency symbol to try to see if a locale is UTF-8 or not.  This commit
refactors it somewhat to make it cleaner, and which fixes several
problems.  The least issue was that it sometimes did a setlocale()
unnecessarily.  Others are that in some circumstances it called
localeconv() and/or looked at the result while within the wrong locale.

5 months agolocale.c: Use ptr's value before freeing it, not after
Karl Williamson [Fri, 11 Jul 2014 21:56:51 +0000]
locale.c: Use ptr's value before freeing it, not after

This only affected runs with the -DL parameter to perl set.

5 months agolocale.c: Use safer code practice
Karl Williamson [Fri, 11 Jul 2014 21:54:38 +0000]
locale.c: Use safer code practice

The interior-most function can return NULL.  Currently savepv() which is
the next outer function handles this correctly, as does the next outer
function, but it is dangerous to rely on that behavior.  So we test for
NULL before calling functions on a NULL ptr.

5 months agolocale.c: Skip compiling fallback code on modern platforms
Karl Williamson [Fri, 11 Jul 2014 21:42:21 +0000]
locale.c: Skip compiling fallback code on modern platforms

In the function that determines if a POSIX locale is UTF-8 or not, if
either nl_langinfo or MB_CUR_MAX are defined, it can reliably determine
the answer.  If they are not defined, it uses heuristics to figure
things out as best it can.  This code doesn't add value for those
platforms where one of the two symbols is defined, so can just be
ifdef'd out

5 months agoutil.c: Add comment
Karl Williamson [Fri, 11 Jul 2014 21:39:02 +0000]
util.c: Add comment

5 months agolocale.c: name should be last resort when deciding if locale is utf8
Karl Williamson [Wed, 9 Jul 2014 19:36:28 +0000]
locale.c: name should be last resort when deciding if locale is utf8

Looking at if the currency symbol is UTF-8 should come ahead of looking
at the locale name.

5 months agolocale.c: Prepare for rearrangement of code blocks
Karl Williamson [Wed, 9 Jul 2014 19:22:17 +0000]
locale.c: Prepare for rearrangement of code blocks

This section of code just returned generally,.  This commit changes it
so that it drops off the end if it can't determine if the current locale
is UTF-8 or not, so that additional tests can be added later.  The
function defaults to not UTF-8 if this drops off the end, so there
should be no functionality change

5 months agoperl.h: Actually #define USE_LOCALE_TIME
Karl Williamson [Wed, 9 Jul 2014 17:26:26 +0000]
perl.h: Actually #define USE_LOCALE_TIME

This symbol is used, but was never defined

5 months agoUpgrade IO-Socket-IP from version 0.30 to 0.31
Steve Hay [Fri, 11 Jul 2014 07:51:42 +0000]
Upgrade IO-Socket-IP from version 0.30 to 0.31

(perldelta: Say we're upgrading from 0.29 since we've already upgraded from
that since 5.21.0.)

5 months agoRemove IGNORABLE files from IO-Socket-IP as per 8db6555210
Steve Hay [Fri, 11 Jul 2014 07:51:23 +0000]
Remove IGNORABLE files from IO-Socket-IP as per 8db6555210

5 months agolocale.c: Fix misplaced parenthesis
Karl Williamson [Thu, 10 Jul 2014 19:31:11 +0000]
locale.c: Fix misplaced parenthesis

Commit a39edc4c877304d4075679b1d8de1904671a9c37 got a parenthesis
misplaced so it wasn't really looking at the next character, like it was
supposed to be doing

5 months agot/run/locale.t: setting to POSIX may be same as C
Karl Williamson [Wed, 9 Jul 2014 15:38:00 +0000]
t/run/locale.t: setting to POSIX may be same as C

On some (? all) systems, setting the locale to POSIX may cause it to
actually set it to C.  In these tests we want to exclude C, hence we
have to exclude POSIX as well.

Some systems may not have any other locales, so this commit also
properly skips tests on those.

Thanks to Matthew Horsfall for figuring this out