summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2012-03-05 19:33:50 -0700
committerRicardo Signes <rjbs@cpan.org>2012-03-23 10:10:28 -0400
commit424313d48c16a7a9ce5a6341b6f65914fbddf259 (patch)
tree0d195f877aad59a2063014330275e900a13362bd
parent7476a79c8db21237e6b6bcf579243fdfc880f8b9 (diff)
downloadperl-424313d48c16a7a9ce5a6341b6f65914fbddf259.tar.gz
PATCH: [perl #11560] extraneous msg in viacode
This refactors to test for the hash element being defined before attempting to use it.
-rw-r--r--lib/_charnames.pm11
-rw-r--r--t/lib/charnames/alias8
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/_charnames.pm b/lib/_charnames.pm
index d29af30f8e..f333234688 100644
--- a/lib/_charnames.pm
+++ b/lib/_charnames.pm
@@ -742,20 +742,21 @@ sub viacode {
&& (! defined $H_ref
|| ! exists $H_ref->{charnames_stringified_inverse_ords});
- my %code_point_aliases = split ',',
+ my %code_point_aliases;
+ if (defined $H_ref->{charnames_stringified_inverse_ords}) {
+ %code_point_aliases = split ',',
$H_ref->{charnames_stringified_inverse_ords};
- if (! exists $code_point_aliases{$hex}) {
+ return $code_point_aliases{$hex} if exists $code_point_aliases{$hex};
+ }
- # If there is an official alias, and no user-defined one, return that
+ # Here there is no user-defined alias, return any official one.
return $return if defined $return;
if (CORE::hex($hex) > 0x10FFFF) {
carp "Unicode characters only allocated up to U+10FFFF (you asked for U+$hex)";
}
return;
- }
- return $code_point_aliases{$hex};
} # _viacode
1;
diff --git a/t/lib/charnames/alias b/t/lib/charnames/alias
index fb1a914fda..75280be7b3 100644
--- a/t/lib/charnames/alias
+++ b/t/lib/charnames/alias
@@ -338,3 +338,11 @@ charnames::viacode(0x41);
EXPECT
OPTIONS regex
$
+########
+# NAME no extraneous warning [perl #11560]
+use warnings;
+use charnames ();
+print charnames::viacode(0x80), "\n";
+EXPECT
+OPTIONS regex
+PADDING CHARACTER