summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-07-11 18:43:26 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-07-11 18:43:26 +0000
commit036b4402dc24284de44ae733b52896d6fd4fbb77 (patch)
treed5e9e3da35cb3d3e73042376fa1e177e1605d2ae /pp.c
parent5e8d048a952c2fb1d246a3acf32bd1f15a6358fa (diff)
downloadperl-036b4402dc24284de44ae733b52896d6fd4fbb77.tar.gz
integrate cfgperl changes#6252..6260 into mainline
p4raw-link: @6260 on //depot/cfgperl: fc865a0069737312ca5ef9762fe8a9be7aa37747 p4raw-link: @6252 on //depot/cfgperl: 0e4dedf1581344244dfa297db1d00c01c5f821aa p4raw-id: //depot/perl@6362 p4raw-integrated: from //depot/cfgperl@6361 'copy in' t/pragma/constant.t (@5717..) t/op/pack.t t/pragma/warn/op (@5996..) pp_proto.h (@6243..) t/op/my_stash.t (@6250..) lib/IPC/Open3.pm (@6253..) 'ignore' t/pragma/warn/regcomp (@6241..) lib/Exporter.pm (@6251..) p4raw-integrated: from //depot/cfgperl@6260 'copy in' pp.c (@6217..) pod/perlfunc.pod (@6248..) p4raw-integrated: from //depot/cfgperl@6259 'copy in' MANIFEST (@6250..) p4raw-integrated: from //depot/cfgperl@6257 'copy in' op.c (@6228..) 'merge in' sv.c (@6244..) p4raw-integrated: from //depot/cfgperl@6256 'copy in' doop.c (@6254..) p4raw-integrated: from //depot/cfgperl@6254 'copy in' t/op/tr.t (@6192..) 'ignore' embedvar.h objXSUB.h (@6243..) 'merge in' embed.h (@6243..) embed.pl proto.h (@6250..)
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pp.c b/pp.c
index 428b2e4760..efea0c1a94 100644
--- a/pp.c
+++ b/pp.c
@@ -4375,6 +4375,7 @@ PP(pp_pack)
register I32 items;
STRLEN fromlen;
register char *pat = SvPVx(*++MARK, fromlen);
+ char *patcopy;
register char *patend = pat + fromlen;
register I32 len;
I32 datumtype;
@@ -4405,6 +4406,7 @@ PP(pp_pack)
items = SP - MARK;
MARK++;
sv_setpvn(cat, "", 0);
+ patcopy = pat;
while (pat < patend) {
SV *lengthcode = Nullsv;
#define NEXTFROM ( lengthcode ? lengthcode : items-- > 0 ? *MARK++ : &PL_sv_no)
@@ -4412,8 +4414,12 @@ PP(pp_pack)
#ifdef PERL_NATINT_PACK
natint = 0;
#endif
- if (isSPACE(datumtype))
+ if (isSPACE(datumtype)) {
+ patcopy++;
continue;
+ }
+ if (datumtype == 'U' && pat==patcopy+1)
+ SvUTF8_on(cat);
if (datumtype == '#') {
while (pat < patend && *pat != '\n')
pat++;