In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/ef4ead6db594965224805417f6959ee430d5c928?hp=59dba841c4c022b197056ed7c78ea7d9e7fbb467>
- Log ----------------------------------------------------------------- commit ef4ead6db594965224805417f6959ee430d5c928 Author: Brian Fraser <[email protected]> Date: Thu Jul 24 15:54:30 2014 +0200 Makefile.SH: Add missing files for make test on cross builds M Makefile.SH commit 329865d81730328189992f6157dd4605d5c23f8e Author: Brian Fraser <[email protected]> Date: Thu Jul 24 15:53:52 2014 +0200 Makefile.SH: Fix cross builds with -Uhostgenerate M Makefile.SH commit fcfe87f64acf23af5dc4a2ef58d6e0ca057b54bf Author: Brian Fraser <[email protected]> Date: Thu Jul 24 15:53:17 2014 +0200 t/re/subst.t: Proper skip for systems without locale M t/re/subst.t commit 3fea7d2930995c8d4501ed04e8de7b899512e1f4 Author: Brian Fraser <[email protected]> Date: Thu Jul 24 15:51:35 2014 +0200 pp.c: Fixed a quotemeta bug on perls built without locale. This was causing quotemeta("\N{U+D7}") to not be quoted, as well as some other codepoints in the latin1 range. M pp.c ----------------------------------------------------------------------- Summary of changes: Makefile.SH | 6 +++++- pp.c | 9 ++++++--- t/re/subst.t | 4 +++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Makefile.SH b/Makefile.SH index ff0b513..85fd312 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -660,7 +660,7 @@ generate_uudmap$(OBJ_EXT): mg_raw.h # it on the target system if we're cross-compiling. # If it is defined, then we just run it locally. case "$hostgenerate" in -'') +''|'undef') $spitshell >>$Makefile <<!GROK!THIS! bitcount.h: generate_uudmap\$(HOST_EXE_EXT) $run ./generate_uudmap\$(HOST_EXE_EXT) \$(generated_headers) @@ -1411,6 +1411,7 @@ test_prep test-prep: test_prep_pre \$(MINIPERL_EXE) \$(unidatafiles) \$(PERL_EXE $to cpan/*/t $to dist/*/t $to ext/*/t + $to cpan/Archive-Tar/* $to cpan/Term-Cap/test.pl $to cpan/Pod-Usage/* $to cpan/Pod-Parser/* @@ -1432,6 +1433,9 @@ test_prep test-prep: test_prep_pre \$(MINIPERL_EXE) \$(unidatafiles) \$(PERL_EXE $to perl.h $to cflags $to *.h +# --- For t/porting/customized.t + $to vutil.c + $to vxs.inc # --- For t/TEST $to config.sh # --- For lib/diagnostics.t with -Duseshrplib diff --git a/pp.c b/pp.c index bc7c0df..5218f7b 100644 --- a/pp.c +++ b/pp.c @@ -4128,15 +4128,18 @@ PP(pp_quotemeta) } } else if (UTF8_IS_DOWNGRADEABLE_START(*s)) { + if ( #ifdef USE_LOCALE_CTYPE /* In locale, we quote all non-ASCII Latin1 chars. * Otherwise use the quoting rules */ - if (IN_LC_RUNTIME(LC_CTYPE) - || _isQUOTEMETA(TWO_BYTE_UTF8_TO_NATIVE(*s, *(s + 1)))) + + IN_LC_RUNTIME(LC_CTYPE) + || +#endif + _isQUOTEMETA(TWO_BYTE_UTF8_TO_NATIVE(*s, *(s + 1)))) { to_quote = TRUE; } -#endif } else if (is_QUOTEMETA_high(s)) { to_quote = TRUE; diff --git a/t/re/subst.t b/t/re/subst.t index 85fe5d6..b85ff3b 100644 --- a/t/re/subst.t +++ b/t/re/subst.t @@ -1036,7 +1036,9 @@ SKIP: { SKIP: { eval { require POSIX; POSIX->import("locale_h"); }; - if ($@) { skip "Can't test locale (maybe you are missing POSIX)", 6; } + if ($@ || !eval { &POSIX::LC_ALL; 1 }) { + skip "Can't test locale (maybe you are missing POSIX)", 6; + } setlocale(&POSIX::LC_ALL, "C"); use locale; -- Perl5 Master Repository
