Accepting request 213506 from devel:languages:perl

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/213506
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/perl?expand=0&rev=87
This commit is contained in:
Stephan Kulow 2014-01-13 15:53:09 +00:00 committed by Git OBS Bridge
commit 8ea98f7c18
5 changed files with 20 additions and 137 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:655e11a8ffba8853efcdce568a142c232600ed120ac24aaebb4e6efe74e85b2b
size 17337400

3
perl-5.18.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7cbed5ef11900e8f68041215eea0de5e443d53393f84c41d5c9c69c150a4982f
size 17296490

View File

@ -1,127 +0,0 @@
--- ./regcomp.c.orig 2013-09-03 14:34:06.277801336 +0000
+++ ./regcomp.c 2013-09-03 14:34:38.600801279 +0000
@@ -10643,7 +10643,7 @@ tryagain:
if (num < 1)
vFAIL("Reference to nonexistent or unclosed group");
}
- if (!isg && (num < 0 || (num > 9 && num >= RExC_npar)))
+ if (!isg && num > 9 && num >= RExC_npar && *RExC_parse != '8' && *RExC_parse != '9')
/* Probably a character specified in octal, e.g. \35 */
goto defchar;
else {
@@ -10920,10 +10920,28 @@ tryagain:
p++;
ender = grok_bslash_c(*p++, UTF, SIZE_ONLY);
break;
- case '0': case '1': case '2': case '3':case '4':
+ case '8': case '9': /* must be a backreference */
+ --p;
+ goto loopdone;
+ case '1': case '2': case '3':case '4':
case '5': case '6': case '7':
- if (*p == '0' ||
- (isDIGIT(p[1]) && (U32)atoi(p) >= (U32)RExC_npar))
+ /* When we parse backslash escapes there is ambiguity between
+ * backreferences and octal escapes. Any escape from \1 - \9 is
+ * a backreference, any multi-digit escape which does not start with
+ * 0 and which when evaluated as decimal could refer to an already
+ * parsed capture buffer is a backslash. Anything else is octal.
+ *
+ * Note this implies that \118 could be interpreted as 118 OR as
+ * "\11" . "8" depending on whether there were 118 capture buffers
+ * defined already in the pattern.
+ */
+ if ( !isDIGIT(p[1]) || atoi(p) <= RExC_npar )
+ { /* Not to be treated as an octal constant, go
+ find backref */
+ --p;
+ goto loopdone;
+ }
+ case '0':
{
I32 flags = PERL_SCAN_SILENT_ILLDIGIT;
STRLEN numlen = 3;
@@ -10942,11 +10960,6 @@ tryagain:
form_short_octal_warning(p, numlen));
}
}
- else { /* Not to be treated as an octal constant, go
- find backref */
- --p;
- goto loopdone;
- }
if (PL_encoding && ender < 0x100)
goto recode_encoding;
break;
--- ./t/re/pat.t.orig 2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/pat.t 2013-09-03 14:34:13.645801323 +0000
@@ -20,7 +20,7 @@ BEGIN {
require './test.pl';
}
-plan tests => 472; # Update this when adding/deleting tests.
+plan tests => 572; # Update this when adding/deleting tests.
run_tests() unless caller;
@@ -1380,6 +1380,23 @@ EOP
is ($s, 'XXcdXXX&', 'RT #119125 with /x');
}
+ {
+ # if we have 87 capture buffers defined then \87 should refer to the 87th.
+ # test that this is true for 1..100
+ my $str= "aa";
+ for my $i (1..100) {
+ my $pat= "a";
+ $pat= "($pat)" for 1 .. $i;
+ $pat.="\\$i";
+ eval {
+ ok($str=~/$pat/,"\\$i works with $i buffers");
+ 1;
+ } or do {
+ ok(0,"\\$i works with $i buffers");
+ };
+ }
+ }
+
} # End of sub run_tests
1;
--- ./t/re/re_tests.orig 2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/re_tests 2013-09-03 14:34:13.646801323 +0000
@@ -1487,9 +1487,9 @@ abc\N{def - c - \\N{NAME} must be resolv
[a\o{1000}] \x{200} y $& \x{200}
# The below were inserting a NULL
-\87 87 y $& 87
-a\87 a87 y $& a87
-a\97 a97 y $& a97
+\87 87 c - Reference to nonexistent group in regex
+a\87 a87 c - Reference to nonexistent group in regex
+a\97 a97 c - Reference to nonexistent group in regex
# The below was inserting a NULL into the character class.
--- ./t/re/reg_mesg.t.orig 2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/reg_mesg.t 2013-09-03 14:34:13.646801323 +0000
@@ -174,6 +174,9 @@ my @death =
'm/[\o]/' => 'Missing braces on \o{} {#} m/[\o{#}]/',
'm/[\o{}]/' => 'Number with no digits {#} m/[\o{}{#}]/',
'm/(?^-i:foo)/' => 'Sequence (?^-...) not recognized {#} m/(?^-{#}i:foo)/',
+ 'm/\87/' => 'Reference to nonexistent group {#} m/\87{#}/',
+ 'm/a\87/' => 'Reference to nonexistent group {#} m/a\87{#}/',
+ 'm/a\97/' => 'Reference to nonexistent group {#} m/a\97{#}/',
);
# Tests involving a user-defined charnames translator are in pat_advanced.t
@@ -200,9 +203,6 @@ my @warning = (
'/\018/' => '\'\018\' resolved to \'\o{1}8\' {#} m/\018{#}/',
'/[\08]/' => '\'\08\' resolved to \'\o{0}8\' {#} m/[\08{#}]/',
'/[\018]/' => '\'\018\' resolved to \'\o{1}8\' {#} m/[\018{#}]/',
- '/\87/' => 'Unrecognized escape \8 passed through {#} m/\8{#}7/',
- '/a\87/' => 'Unrecognized escape \8 passed through {#} m/a\8{#}7/',
- '/a\97/' => 'Unrecognized escape \9 passed through {#} m/a\9{#}7/',
'/(?=a)*/' => '(?=a)* matches null string many times {#} m/(?=a)*{#}/',
'my $x = \'\m\'; qr/a$x/' => 'Unrecognized escape \m passed through {#} m/a\m{#}/',
'/\q/' => 'Unrecognized escape \q passed through {#} m/\q{#}/',

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed Jan 8 15:11:45 CET 2014 - mls@suse.de
- update to perl-5.18.2
* updates for the B::Concise, English, File::Glob modules
* a lexical subs regression has been fixed
* a regression when using SUPER with AUTOLOAD has been fixed
* a buffer overflow with very long identifiers has been fixed
* some other minor bug fixes
- perl-reg89.diff is no longer needed
-------------------------------------------------------------------
Wed Sep 4 10:30:50 CEST 2013 - mls@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package perl
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -21,9 +21,9 @@ Name: perl
Summary: The Perl interpreter
License: Artistic-1.0 or GPL-2.0+
Group: Development/Languages/Perl
Version: 5.18.1
Version: 5.18.2
Release: 0
%define pversion 5.18.1
%define pversion 5.18.2
Url: http://www.perl.org/
Source: http://www.cpan.org/src/5.0/perl-%{version}.tar.gz
Source1: %name-rpmlintrc
@ -39,8 +39,7 @@ Patch5: perl-HiRes.t-timeout.diff
Patch6: perl-saverecontext.diff
Patch7: perl-db6.diff
Patch8: skip_time_hires.patch
Patch9: perl-reg89.diff
Patch10: perl-incfix.diff
Patch9: perl-incfix.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: perl-base = %version
#PreReq: %fillup_prereq
@ -58,8 +57,9 @@ Provides: perl = %pversion-%release
Provides: perl-500
Provides: perl-Filter-Simple
Provides: perl(:MODULE_COMPAT_%pversion)
%global versionlist 5.18.0
%global versionlist 5.18.0 5.18.1
Provides: perl(:MODULE_COMPAT_5.18.0)
Provides: perl(:MODULE_COMPAT_5.18.1)
Obsoletes: perl-Filter-Simple
Provides: perl-I18N-LangTags
Obsoletes: perl-I18N-LangTags
@ -174,7 +174,6 @@ cp -p %{S:3} .
%patch8 -p1
%endif
%patch9
%patch10
%build
cp -a lib savelib