diff options
Diffstat (limited to 'meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff')
-rw-r--r-- | meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff b/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff new file mode 100644 index 0000000000..b5564fdbc0 --- /dev/null +++ b/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff | |||
@@ -0,0 +1,73 @@ | |||
1 | From 0ecf83f259db09cb38cb37c9b22e72be185afa8f Mon Sep 17 00:00:00 2001 | ||
2 | From: Hugo van der Sanden <hv@crypt.org> | ||
3 | Date: Thu, 11 Jun 2015 12:25:40 +0100 | ||
4 | Subject: fix -Cnn parsing | ||
5 | |||
6 | Commit 22ff313068 for [perl #123814] inadvertently changed the logic when | ||
7 | parsing a numeric parameter to the -C option, such that the successfully | ||
8 | parsed number was not saved as the option value if it parsed to the end | ||
9 | of the argument. | ||
10 | |||
11 | Bug: https://rt.perl.org/Ticket/Display.html?id=125381 | ||
12 | Bug-Debian: https://bugs.debian.org/788636 | ||
13 | Origin: upstream, http://perl5.git.perl.org/perl.git/commit/89d84ff965 | ||
14 | Patch-Name: fixes/perl-Cnn.diff | ||
15 | --- | ||
16 | t/run/switchC.t | 7 ++++++- | ||
17 | util.c | 17 ++++++++--------- | ||
18 | 2 files changed, 14 insertions(+), 10 deletions(-) | ||
19 | |||
20 | diff --git a/t/run/switchC.t b/t/run/switchC.t | ||
21 | index f6aa868..4f63c3b 100644 | ||
22 | --- a/t/run/switchC.t | ||
23 | +++ b/t/run/switchC.t | ||
24 | @@ -11,7 +11,7 @@ BEGIN { | ||
25 | skip_all_if_miniperl('-C and $ENV{PERL_UNICODE} are disabled on miniperl'); | ||
26 | } | ||
27 | |||
28 | -plan(tests => 13); | ||
29 | +plan(tests => 14); | ||
30 | |||
31 | my $r; | ||
32 | |||
33 | @@ -25,6 +25,11 @@ $r = runperl( switches => [ '-CO', '-w' ], | ||
34 | stderr => 1 ); | ||
35 | like( $r, qr/^$b(?:\r?\n)?$/s, '-CO: no warning on UTF-8 output' ); | ||
36 | |||
37 | +$r = runperl( switches => [ '-C2', '-w' ], | ||
38 | + prog => 'print chr(256)', | ||
39 | + stderr => 1 ); | ||
40 | +like( $r, qr/^$b(?:\r?\n)?$/s, '-C2: no warning on UTF-8 output' ); | ||
41 | + | ||
42 | SKIP: { | ||
43 | if (exists $ENV{PERL_UNICODE} && | ||
44 | ($ENV{PERL_UNICODE} eq "" || $ENV{PERL_UNICODE} =~ /[SO]/)) { | ||
45 | diff --git a/util.c b/util.c | ||
46 | index 8cf62f5..ee23314 100644 | ||
47 | --- a/util.c | ||
48 | +++ b/util.c | ||
49 | @@ -4420,16 +4420,15 @@ Perl_parse_unicode_opts(pTHX_ const char **popt) | ||
50 | if (isDIGIT(*p)) { | ||
51 | const char* endptr; | ||
52 | UV uv; | ||
53 | - if (grok_atoUV(p, &uv, &endptr) | ||
54 | - && uv <= U32_MAX | ||
55 | - && (p = endptr) | ||
56 | - && *p && *p != '\n' && *p != '\r' | ||
57 | - ) { | ||
58 | + if (grok_atoUV(p, &uv, &endptr) && uv <= U32_MAX) { | ||
59 | opt = (U32)uv; | ||
60 | - if (isSPACE(*p)) | ||
61 | - goto the_end_of_the_opts_parser; | ||
62 | - else | ||
63 | - Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); | ||
64 | + p = endptr; | ||
65 | + if (p && *p && *p != '\n' && *p != '\r') { | ||
66 | + if (isSPACE(*p)) | ||
67 | + goto the_end_of_the_opts_parser; | ||
68 | + else | ||
69 | + Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); | ||
70 | + } | ||
71 | } | ||
72 | } | ||
73 | else { | ||