diff options
author | Rafael Garcia-Suarez <rgs@consttype.org> | 2012-01-25 12:45:25 +0100 |
---|---|---|
committer | Rafael Garcia-Suarez <rgs@consttype.org> | 2012-01-25 12:45:25 +0100 |
commit | d7cf15ed3621c923ff3ce120367eec0f05078d4b (patch) | |
tree | 11f459ebc24df1d8bd6b9c1f2e26b77d5195d741 | |
parent | d3bcd21f9c56ad29603330017e1fef6e7910189b (diff) | |
download | perl-d7cf15ed3621c923ff3ce120367eec0f05078d4b.tar.gz |
Correctly escape UTF-8 in hash keys in uninitialized warnings
-rw-r--r-- | sv.c | 3 | ||||
-rw-r--r-- | t/lib/warnings/9uninit | 4 |
2 files changed, 4 insertions, 3 deletions
@@ -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); |