summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgs@consttype.org>2012-01-25 12:45:25 +0100
committerRafael Garcia-Suarez <rgs@consttype.org>2012-01-25 12:45:25 +0100
commitd7cf15ed3621c923ff3ce120367eec0f05078d4b (patch)
tree11f459ebc24df1d8bd6b9c1f2e26b77d5195d741
parentd3bcd21f9c56ad29603330017e1fef6e7910189b (diff)
downloadperl-d7cf15ed3621c923ff3ce120367eec0f05078d4b.tar.gz
Correctly escape UTF-8 in hash keys in uninitialized warnings
-rw-r--r--sv.c3
-rw-r--r--t/lib/warnings/9uninit4
2 files changed, 4 insertions, 3 deletions
diff --git a/sv.c b/sv.c
index 2dce137220..be5aec808c 100644
--- a/sv.c
+++ b/sv.c
@@ -13895,7 +13895,8 @@ Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ,
SV * const sv = newSV(0);
*SvPVX(name) = '$';
Perl_sv_catpvf(aTHX_ name, "{%s}",
- pv_display(sv,SvPVX_const(keyname), SvCUR(keyname), 0, 32));
+ pv_pretty(sv, SvPVX_const(keyname), SvCUR(keyname), 32, NULL, NULL,
+ PERL_PV_PRETTY_DUMP | PERL_PV_ESCAPE_UNI_DETECT ));
SvREFCNT_dec(sv);
}
else if (subscript_type == FUV_SUBSCRIPT_ARRAY) {
diff --git a/t/lib/warnings/9uninit b/t/lib/warnings/9uninit
index 0d2d84141b..37e24e7385 100644
--- a/t/lib/warnings/9uninit
+++ b/t/lib/warnings/9uninit
@@ -1189,10 +1189,10 @@ use warnings 'uninitialized';
my ($v);
# check hash key is sanitised
-my %h = ("\0011\002\r\n\t\f\"\\abcdefghijklmnopqrstuvwxyz", undef);
+my %h = ("\0011\002\r\n\t\f\"\\\x{1234}abcdefghijklmnopqrstuvwxyz", undef);
$v = join '', %h;
EXPECT
-Use of uninitialized value $h{"\0011\2\r\n\t\f\"\\abcdefghijklm"...} in join or string at - line 6.
+Use of uninitialized value $h{"\0011\2\r\n\t\f\"\\\x{1234}abcde"...} in join or string at - line 6.
########
use warnings 'uninitialized';
my ($m1, $v);