Steffen Mueller
2010-07-31 18:12:18 UTC
In perl.git, the branch maint-5.12 has been updated
<http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>
- Log -----------------------------------------------------------------
commit a812667ac70fa062909d32a87ad9c756098c49bf
Author: Steffen Mueller <***@cpan.org>
Date: Sat Jul 31 20:10:40 2010 +0200
Fix POD link
Fixes a bad link and associated test failure that were introduced by
yours truly when cherry-picking 1aae995a5295b9fa1dfabb00e962a95b53040f18.
M pod/perlrepository.pod
commit 8adc9ad6b056cde008af18f8d14156424a2b713c
Author: Curtis Jewell <***@csjewell.fastmail.us>
Date: Mon May 17 01:50:19 2010 -0600
Update perlhist.pod for 5.10.1-5.12.1
M pod/perlhist.pod
commit 67728a7f37c3d553532a19faf3b69f0f75e1b408
Author: Chris 'BinGOs' Williams <***@bingosnet.co.uk>
Date: Sat May 8 12:57:00 2010 +0100
Backport patch from CPANPLUS-0.9004 to cpanp-run-perl
This resolves RT #55964 and RT #57106 relating to the failure to
install distributions that use Module::Install::DSL
The addition of a BEGIN {} block to cpanp-run-perl resolves the
issue.
M cpan/CPANPLUS/bin/cpanp-run-perl
commit 1034633874902704c77f920090df30c42cfc8216
Author: Tony Cook <***@develop-help.com>
Date: Fri Apr 23 19:28:35 2010 +1000
RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u
split() would crash because the third item on the stack wasn't the
regular expression it expected. unpack("%2H", ...) would return both
the unpacked result and the checksum on the stack, similarly for
unpack("%2u", ...).
M pp_pack.c
M t/op/pack.t
-----------------------------------------------------------------------
Summary of changes:
cpan/CPANPLUS/bin/cpanp-run-perl | 3 +-
pod/perlhist.pod | 184 +++++++++++++++++++------------------
pod/perlrepository.pod | 2 +-
pp_pack.c | 33 +++++---
t/op/pack.t | 10 ++-
5 files changed, 127 insertions(+), 105 deletions(-)
diff --git a/cpan/CPANPLUS/bin/cpanp-run-perl b/cpan/CPANPLUS/bin/cpanp-run-perl
index 34e62bd..b6b4dc6 100644
--- a/cpan/CPANPLUS/bin/cpanp-run-perl
+++ b/cpan/CPANPLUS/bin/cpanp-run-perl
@@ -1,10 +1,11 @@
use strict;
+BEGIN {
my $old = select STDERR; $|++; # turn on autoflush
select $old; $|++; # turn on autoflush
$0 = shift(@ARGV); # rename the script
my $rv = do($0); # execute the file
die $@ if $@; # die on parse/execute error
-
+}
### XXX 'do' returns last statement evaluated, which may be
### undef as well. So don't die in that case.
#die $! if not defined $rv; # die on execute error
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 4a78a3c..df1652e 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -433,68 +433,71 @@ explained below.
release core lib ext t doc
======================================================================
- 1.000 212 29 - - - - 38 51 62 3
- 1.014 219 29 - - - - 39 52 68 4
- 2.000 309 31 2 3 - - 55 57 92 4
- 2.001 312 31 2 3 - - 55 57 94 4
- 3.000 508 36 24 11 - - 79 73 156 5
- 3.044 645 37 61 20 - - 90 74 190 6
- 4.000 635 37 59 20 - - 91 75 198 4
- 4.019 680 37 85 29 - - 98 76 199 4
- 4.036 709 37 89 30 - - 98 76 208 5
- 5.000alpha2 785 50 114 32 - - 112 86 209 5
- 5.000alpha3 801 50 117 33 - - 121 87 209 5
- 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
- 5.000a12h 978 49 140 49 205 46 152 97 228 9
- 5.000b3h 1035 53 232 70 216 38 162 94 218 21
- 5.000 1038 53 250 76 216 38 154 92 536 62
- 5.001m 1071 54 388 82 240 38 159 95 544 29
- 5.002 1121 54 661 101 287 43 155 94 847 35
- 5.003 1129 54 680 102 291 43 166 100 853 35
- 5.003_07 1231 60 748 106 396 53 213 137 976 39
- 5.004 1351 60 1230 136 408 51 355 161 1587 55
- 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
- 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
- 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
- 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
- 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
- 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
- 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
- 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
- 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
- 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
- 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
- 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
- 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
- 5.005 1896 76 1469 152 795 103 509 197 1945 63
- 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
- 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
- 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
- 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
- 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
- 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
- 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
- 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
- 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
- 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
- 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
- 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
- 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
- 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
- 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
- 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
- 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
- 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
- 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
- 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
- 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
- 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
- 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
- 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
- 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
- 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
- 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
- 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 1.000 212 29 - - - - 38 51 62 3
+ 1.014 219 29 - - - - 39 52 68 4
+ 2.000 309 31 2 3 - - 55 57 92 4
+ 2.001 312 31 2 3 - - 55 57 94 4
+ 3.000 508 36 24 11 - - 79 73 156 5
+ 3.044 645 37 61 20 - - 90 74 190 6
+ 4.000 635 37 59 20 - - 91 75 198 4
+ 4.019 680 37 85 29 - - 98 76 199 4
+ 4.036 709 37 89 30 - - 98 76 208 5
+ 5.000alpha2 785 50 114 32 - - 112 86 209 5
+ 5.000alpha3 801 50 117 33 - - 121 87 209 5
+ 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
+ 5.000a12h 978 49 140 49 205 46 152 97 228 9
+ 5.000b3h 1035 53 232 70 216 38 162 94 218 21
+ 5.000 1038 53 250 76 216 38 154 92 536 62
+ 5.001m 1071 54 388 82 240 38 159 95 544 29
+ 5.002 1121 54 661 101 287 43 155 94 847 35
+ 5.003 1129 54 680 102 291 43 166 100 853 35
+ 5.003_07 1231 60 748 106 396 53 213 137 976 39
+ 5.004 1351 60 1230 136 408 51 355 161 1587 55
+ 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
+ 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
+ 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
+ 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
+ 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
+ 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
+ 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
+ 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
+ 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
+ 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
+ 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
+ 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
+ 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
+ 5.005 1896 76 1469 152 795 103 509 197 1945 63
+ 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
+ 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
+ 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
+ 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
+ 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
+ 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
+ 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
+ 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
+ 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
+ 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
+ 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
+ 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
+ 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
+ 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
+ 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
+ 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
+ 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
+ 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
+ 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
+ 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
+ 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
+ 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
+ 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
+ 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
+ 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
+ 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
+ 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
+ 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 5.10.1 4858 98 7440 519 6195 921 6147 1751 5151 163
+ 5.12.0 4999 100 1146 121 15227 2176 6400 1843 5342 168
+ 5.12.1 5000 100 1146 121 15283 2178 6407 1846 5354 169
The "core"..."doc" mean the following files from the Perl source code
distribution. The glob notation ** means recursively, (.) means
@@ -502,7 +505,8 @@ regular files.
core *.[hcy]
lib lib/**/*.p[ml]
- ext ext/**/*.{[hcyt],xs,pm}
+ ext ext/**/*.{[hcyt],xs,pm} (for -5.10.1) or
+ {dist,ext,cpan}/**/*.{[hcyt],xs,pm} (for 5.12.0-)
t t/**/*(.) (for 1-5.005_56) or **/*.t (for 5.6.0-5.7.3)
doc {README*,INSTALL,*[_.]man{,.?},pod/**/*.pod}
@@ -739,33 +743,33 @@ the Perl source distribution for somewhat more selected releases.
======================================================================
- 5.9.5 5.10.0
-
- apollo 8 3 8 3
- beos 8 4 8 4
- Configure 518 1 518 1
- Cross 122 15 122 15
- djgpp 21 7 21 7
- emacs 329 4 406 4
- epoc 34 8 35 8
- h2pl 24 15 24 15
- hints 377 98 381 98
- mad 182 8 182 8
- mint 11 9 11 9
- mpeix 49 6 49 6
- NetWare 489 61 489 61
- os2 552 70 552 70
- plan9 324 17 324 17
- Porting 627 40 632 40
- qnx 5 3 5 4
- symbian 300 54 300 54
- utils 260 26 264 27
- uts 12 3 12 3
- vmesa 25 4 25 4
- vms 690 32 722 32
- vos 19 8 19 8
- win32 1482 68 1485 68
- x2p 349 19 349 19
+ 5.9.5 5.10.0 5.10.1 5.12.0 5.12.1
+
+ apollo 8 3 8 3 0 3 0 3 0 3
+ beos 8 4 8 4 4 4 4 4 4 4
+ Configure 518 1 518 1 533 1 536 1 536 1
+ Cross 122 15 122 15 119 15 118 15 118 15
+ djgpp 21 7 21 7 17 7 17 7 17 7
+ emacs 329 4 406 4 402 4 402 4 402 4
+ epoc 34 8 35 8 31 8 31 8 31 8
+ h2pl 24 15 24 15 12 15 12 15 12 15
+ hints 377 98 381 98 385 100 368 97 368 97
+ mad 182 8 182 8 174 8 174 8 174 8
+ mint 11 9 11 9 3 9 - - - -
+ mpeix 49 6 49 6 45 6 45 6 45 6
+ NetWare 489 61 489 61 465 61 466 61 466 61
+ os2 552 70 552 70 507 70 507 70 507 70
+ plan9 324 17 324 17 316 17 316 17 316 17
+ Porting 627 40 632 40 933 53 749 54 749 54
+ qnx 5 3 5 4 1 4 1 4 1 4
+ symbian 300 54 300 54 290 54 288 54 288 54
+ utils 260 26 264 27 268 27 269 27 269 27
+ uts 12 3 12 3 8 3 8 3 8 3
+ vmesa 25 4 25 4 21 4 21 4 21 4
+ vms 690 32 722 32 693 30 645 18 645 18
+ vos 19 8 19 8 16 8 16 8 16 8
+ win32 1482 68 1485 68 1497 70 1841 73 1841 73
+ x2p 349 19 349 19 345 19 345 19 345 19
=head2 SELECTED PATCH SIZES
diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
index 20b6209..11b2249 100644
--- a/pod/perlrepository.pod
+++ b/pod/perlrepository.pod
@@ -738,7 +738,7 @@ The same patch as above, using github might look like this:
% git push origin orange
The orange branch has been pushed to GitHub, so you should now send an
-email (see L</Submitting a patch>) with a description of your changes
+email (see L</SUBMITTING A PATCH>) with a description of your changes
and the following information:
http://github.com/USERNAME/perl/tree/orange
diff --git a/pp_pack.c b/pp_pack.c
index 0670548..0ae8afd 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -1562,9 +1562,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
/* Preliminary length estimate, acceptable for utf8 too */
if (howlen == e_star || len > (strend - s) * 2)
len = (strend - s) * 2;
- sv = sv_2mortal(newSV(len ? len : 1));
- SvPOK_on(sv);
- str = SvPVX(sv);
+ if (!checksum) {
+ sv = sv_2mortal(newSV(len ? len : 1));
+ SvPOK_on(sv);
+ str = SvPVX(sv);
+ }
if (datumtype == 'h') {
U8 bits = 0;
I32 ai32 = len;
@@ -1574,7 +1576,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = * (U8 *) s++;
- *str++ = PL_hexdigit[bits & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[bits & 15];
}
} else {
U8 bits = 0;
@@ -1585,12 +1588,15 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = *(U8 *) s++;
- *str++ = PL_hexdigit[(bits >> 4) & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[(bits >> 4) & 15];
}
}
- *str = '\0';
- SvCUR_set(sv, str - SvPVX_const(sv));
- XPUSHs(sv);
+ if (!checksum) {
+ *str = '\0';
+ SvCUR_set(sv, str - SvPVX_const(sv));
+ XPUSHs(sv);
+ }
break;
}
case 'C':
@@ -2123,7 +2129,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
break;
#endif
case 'u':
- {
+ if (!checksum) {
const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
sv = sv_2mortal(newSV(l));
if (l) SvPOK_on(sv);
@@ -2141,7 +2147,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (s < strend) {
@@ -2182,7 +2189,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (*s == '\n')
@@ -2192,7 +2200,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
s += 2;
}
}
- XPUSHs(sv);
+ if (!checksum)
+ XPUSHs(sv);
break;
}
diff --git a/t/op/pack.t b/t/op/pack.t
index 4b5f9a5..5775caf 100644
--- a/t/op/pack.t
+++ b/t/op/pack.t
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
my $no_signedness = $] > 5.009 ? '' :
"Signed/unsigned pack modifiers not available on this perl";
-plan tests => 14697;
+plan tests => 14699;
use strict;
use warnings qw(FATAL all);
@@ -1985,3 +1985,11 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
my ($v) = split //, unpack ('(B)*', 'ab');
is($v, 0); # Doesn't SEGV :-)
}
+{
+ #73814
+ my $x = runperl( prog => 'print split( /,/, unpack(q(%2H*), q(hello world))), qq(\n)' );
+ is($x, "0\n", "split /a/, unpack('%2H*'...) didn't crash");
+
+ my $y = runperl( prog => 'print split( /,/, unpack(q(%32u*), q(#,3,Q)), qq(\n)), qq(\n)' );
+ is($y, "0\n", "split /a/, unpack('%32u*'...) didn't crash");
+}
--
Perl5 Master Repository
<http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>
- Log -----------------------------------------------------------------
commit a812667ac70fa062909d32a87ad9c756098c49bf
Author: Steffen Mueller <***@cpan.org>
Date: Sat Jul 31 20:10:40 2010 +0200
Fix POD link
Fixes a bad link and associated test failure that were introduced by
yours truly when cherry-picking 1aae995a5295b9fa1dfabb00e962a95b53040f18.
M pod/perlrepository.pod
commit 8adc9ad6b056cde008af18f8d14156424a2b713c
Author: Curtis Jewell <***@csjewell.fastmail.us>
Date: Mon May 17 01:50:19 2010 -0600
Update perlhist.pod for 5.10.1-5.12.1
M pod/perlhist.pod
commit 67728a7f37c3d553532a19faf3b69f0f75e1b408
Author: Chris 'BinGOs' Williams <***@bingosnet.co.uk>
Date: Sat May 8 12:57:00 2010 +0100
Backport patch from CPANPLUS-0.9004 to cpanp-run-perl
This resolves RT #55964 and RT #57106 relating to the failure to
install distributions that use Module::Install::DSL
The addition of a BEGIN {} block to cpanp-run-perl resolves the
issue.
M cpan/CPANPLUS/bin/cpanp-run-perl
commit 1034633874902704c77f920090df30c42cfc8216
Author: Tony Cook <***@develop-help.com>
Date: Fri Apr 23 19:28:35 2010 +1000
RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u
split() would crash because the third item on the stack wasn't the
regular expression it expected. unpack("%2H", ...) would return both
the unpacked result and the checksum on the stack, similarly for
unpack("%2u", ...).
M pp_pack.c
M t/op/pack.t
-----------------------------------------------------------------------
Summary of changes:
cpan/CPANPLUS/bin/cpanp-run-perl | 3 +-
pod/perlhist.pod | 184 +++++++++++++++++++------------------
pod/perlrepository.pod | 2 +-
pp_pack.c | 33 +++++---
t/op/pack.t | 10 ++-
5 files changed, 127 insertions(+), 105 deletions(-)
diff --git a/cpan/CPANPLUS/bin/cpanp-run-perl b/cpan/CPANPLUS/bin/cpanp-run-perl
index 34e62bd..b6b4dc6 100644
--- a/cpan/CPANPLUS/bin/cpanp-run-perl
+++ b/cpan/CPANPLUS/bin/cpanp-run-perl
@@ -1,10 +1,11 @@
use strict;
+BEGIN {
my $old = select STDERR; $|++; # turn on autoflush
select $old; $|++; # turn on autoflush
$0 = shift(@ARGV); # rename the script
my $rv = do($0); # execute the file
die $@ if $@; # die on parse/execute error
-
+}
### XXX 'do' returns last statement evaluated, which may be
### undef as well. So don't die in that case.
#die $! if not defined $rv; # die on execute error
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 4a78a3c..df1652e 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -433,68 +433,71 @@ explained below.
release core lib ext t doc
======================================================================
- 1.000 212 29 - - - - 38 51 62 3
- 1.014 219 29 - - - - 39 52 68 4
- 2.000 309 31 2 3 - - 55 57 92 4
- 2.001 312 31 2 3 - - 55 57 94 4
- 3.000 508 36 24 11 - - 79 73 156 5
- 3.044 645 37 61 20 - - 90 74 190 6
- 4.000 635 37 59 20 - - 91 75 198 4
- 4.019 680 37 85 29 - - 98 76 199 4
- 4.036 709 37 89 30 - - 98 76 208 5
- 5.000alpha2 785 50 114 32 - - 112 86 209 5
- 5.000alpha3 801 50 117 33 - - 121 87 209 5
- 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
- 5.000a12h 978 49 140 49 205 46 152 97 228 9
- 5.000b3h 1035 53 232 70 216 38 162 94 218 21
- 5.000 1038 53 250 76 216 38 154 92 536 62
- 5.001m 1071 54 388 82 240 38 159 95 544 29
- 5.002 1121 54 661 101 287 43 155 94 847 35
- 5.003 1129 54 680 102 291 43 166 100 853 35
- 5.003_07 1231 60 748 106 396 53 213 137 976 39
- 5.004 1351 60 1230 136 408 51 355 161 1587 55
- 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
- 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
- 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
- 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
- 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
- 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
- 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
- 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
- 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
- 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
- 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
- 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
- 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
- 5.005 1896 76 1469 152 795 103 509 197 1945 63
- 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
- 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
- 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
- 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
- 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
- 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
- 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
- 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
- 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
- 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
- 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
- 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
- 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
- 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
- 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
- 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
- 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
- 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
- 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
- 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
- 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
- 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
- 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
- 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
- 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
- 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
- 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
- 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 1.000 212 29 - - - - 38 51 62 3
+ 1.014 219 29 - - - - 39 52 68 4
+ 2.000 309 31 2 3 - - 55 57 92 4
+ 2.001 312 31 2 3 - - 55 57 94 4
+ 3.000 508 36 24 11 - - 79 73 156 5
+ 3.044 645 37 61 20 - - 90 74 190 6
+ 4.000 635 37 59 20 - - 91 75 198 4
+ 4.019 680 37 85 29 - - 98 76 199 4
+ 4.036 709 37 89 30 - - 98 76 208 5
+ 5.000alpha2 785 50 114 32 - - 112 86 209 5
+ 5.000alpha3 801 50 117 33 - - 121 87 209 5
+ 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
+ 5.000a12h 978 49 140 49 205 46 152 97 228 9
+ 5.000b3h 1035 53 232 70 216 38 162 94 218 21
+ 5.000 1038 53 250 76 216 38 154 92 536 62
+ 5.001m 1071 54 388 82 240 38 159 95 544 29
+ 5.002 1121 54 661 101 287 43 155 94 847 35
+ 5.003 1129 54 680 102 291 43 166 100 853 35
+ 5.003_07 1231 60 748 106 396 53 213 137 976 39
+ 5.004 1351 60 1230 136 408 51 355 161 1587 55
+ 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
+ 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
+ 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
+ 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
+ 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
+ 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
+ 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
+ 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
+ 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
+ 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
+ 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
+ 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
+ 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
+ 5.005 1896 76 1469 152 795 103 509 197 1945 63
+ 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
+ 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
+ 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
+ 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
+ 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
+ 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
+ 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
+ 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
+ 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
+ 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
+ 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
+ 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
+ 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
+ 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
+ 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
+ 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
+ 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
+ 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
+ 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
+ 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
+ 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
+ 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
+ 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
+ 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
+ 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
+ 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
+ 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
+ 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 5.10.1 4858 98 7440 519 6195 921 6147 1751 5151 163
+ 5.12.0 4999 100 1146 121 15227 2176 6400 1843 5342 168
+ 5.12.1 5000 100 1146 121 15283 2178 6407 1846 5354 169
The "core"..."doc" mean the following files from the Perl source code
distribution. The glob notation ** means recursively, (.) means
@@ -502,7 +505,8 @@ regular files.
core *.[hcy]
lib lib/**/*.p[ml]
- ext ext/**/*.{[hcyt],xs,pm}
+ ext ext/**/*.{[hcyt],xs,pm} (for -5.10.1) or
+ {dist,ext,cpan}/**/*.{[hcyt],xs,pm} (for 5.12.0-)
t t/**/*(.) (for 1-5.005_56) or **/*.t (for 5.6.0-5.7.3)
doc {README*,INSTALL,*[_.]man{,.?},pod/**/*.pod}
@@ -739,33 +743,33 @@ the Perl source distribution for somewhat more selected releases.
======================================================================
- 5.9.5 5.10.0
-
- apollo 8 3 8 3
- beos 8 4 8 4
- Configure 518 1 518 1
- Cross 122 15 122 15
- djgpp 21 7 21 7
- emacs 329 4 406 4
- epoc 34 8 35 8
- h2pl 24 15 24 15
- hints 377 98 381 98
- mad 182 8 182 8
- mint 11 9 11 9
- mpeix 49 6 49 6
- NetWare 489 61 489 61
- os2 552 70 552 70
- plan9 324 17 324 17
- Porting 627 40 632 40
- qnx 5 3 5 4
- symbian 300 54 300 54
- utils 260 26 264 27
- uts 12 3 12 3
- vmesa 25 4 25 4
- vms 690 32 722 32
- vos 19 8 19 8
- win32 1482 68 1485 68
- x2p 349 19 349 19
+ 5.9.5 5.10.0 5.10.1 5.12.0 5.12.1
+
+ apollo 8 3 8 3 0 3 0 3 0 3
+ beos 8 4 8 4 4 4 4 4 4 4
+ Configure 518 1 518 1 533 1 536 1 536 1
+ Cross 122 15 122 15 119 15 118 15 118 15
+ djgpp 21 7 21 7 17 7 17 7 17 7
+ emacs 329 4 406 4 402 4 402 4 402 4
+ epoc 34 8 35 8 31 8 31 8 31 8
+ h2pl 24 15 24 15 12 15 12 15 12 15
+ hints 377 98 381 98 385 100 368 97 368 97
+ mad 182 8 182 8 174 8 174 8 174 8
+ mint 11 9 11 9 3 9 - - - -
+ mpeix 49 6 49 6 45 6 45 6 45 6
+ NetWare 489 61 489 61 465 61 466 61 466 61
+ os2 552 70 552 70 507 70 507 70 507 70
+ plan9 324 17 324 17 316 17 316 17 316 17
+ Porting 627 40 632 40 933 53 749 54 749 54
+ qnx 5 3 5 4 1 4 1 4 1 4
+ symbian 300 54 300 54 290 54 288 54 288 54
+ utils 260 26 264 27 268 27 269 27 269 27
+ uts 12 3 12 3 8 3 8 3 8 3
+ vmesa 25 4 25 4 21 4 21 4 21 4
+ vms 690 32 722 32 693 30 645 18 645 18
+ vos 19 8 19 8 16 8 16 8 16 8
+ win32 1482 68 1485 68 1497 70 1841 73 1841 73
+ x2p 349 19 349 19 345 19 345 19 345 19
=head2 SELECTED PATCH SIZES
diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
index 20b6209..11b2249 100644
--- a/pod/perlrepository.pod
+++ b/pod/perlrepository.pod
@@ -738,7 +738,7 @@ The same patch as above, using github might look like this:
% git push origin orange
The orange branch has been pushed to GitHub, so you should now send an
-email (see L</Submitting a patch>) with a description of your changes
+email (see L</SUBMITTING A PATCH>) with a description of your changes
and the following information:
http://github.com/USERNAME/perl/tree/orange
diff --git a/pp_pack.c b/pp_pack.c
index 0670548..0ae8afd 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -1562,9 +1562,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
/* Preliminary length estimate, acceptable for utf8 too */
if (howlen == e_star || len > (strend - s) * 2)
len = (strend - s) * 2;
- sv = sv_2mortal(newSV(len ? len : 1));
- SvPOK_on(sv);
- str = SvPVX(sv);
+ if (!checksum) {
+ sv = sv_2mortal(newSV(len ? len : 1));
+ SvPOK_on(sv);
+ str = SvPVX(sv);
+ }
if (datumtype == 'h') {
U8 bits = 0;
I32 ai32 = len;
@@ -1574,7 +1576,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = * (U8 *) s++;
- *str++ = PL_hexdigit[bits & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[bits & 15];
}
} else {
U8 bits = 0;
@@ -1585,12 +1588,15 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = *(U8 *) s++;
- *str++ = PL_hexdigit[(bits >> 4) & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[(bits >> 4) & 15];
}
}
- *str = '\0';
- SvCUR_set(sv, str - SvPVX_const(sv));
- XPUSHs(sv);
+ if (!checksum) {
+ *str = '\0';
+ SvCUR_set(sv, str - SvPVX_const(sv));
+ XPUSHs(sv);
+ }
break;
}
case 'C':
@@ -2123,7 +2129,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
break;
#endif
case 'u':
- {
+ if (!checksum) {
const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
sv = sv_2mortal(newSV(l));
if (l) SvPOK_on(sv);
@@ -2141,7 +2147,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (s < strend) {
@@ -2182,7 +2189,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (*s == '\n')
@@ -2192,7 +2200,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
s += 2;
}
}
- XPUSHs(sv);
+ if (!checksum)
+ XPUSHs(sv);
break;
}
diff --git a/t/op/pack.t b/t/op/pack.t
index 4b5f9a5..5775caf 100644
--- a/t/op/pack.t
+++ b/t/op/pack.t
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
my $no_signedness = $] > 5.009 ? '' :
"Signed/unsigned pack modifiers not available on this perl";
-plan tests => 14697;
+plan tests => 14699;
use strict;
use warnings qw(FATAL all);
@@ -1985,3 +1985,11 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
my ($v) = split //, unpack ('(B)*', 'ab');
is($v, 0); # Doesn't SEGV :-)
}
+{
+ #73814
+ my $x = runperl( prog => 'print split( /,/, unpack(q(%2H*), q(hello world))), qq(\n)' );
+ is($x, "0\n", "split /a/, unpack('%2H*'...) didn't crash");
+
+ my $y = runperl( prog => 'print split( /,/, unpack(q(%32u*), q(#,3,Q)), qq(\n)), qq(\n)' );
+ is($y, "0\n", "split /a/, unpack('%32u*'...) didn't crash");
+}
--
Perl5 Master Repository