From 363879a0952f77ca92caac0ce999916648a45173 Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Wed, 15 Jun 2011 14:32:14 -0600 Subject: [PATCH] charnames: Quote metachars in script names "use charnames qw(.*)" will match any script; it should match none. --- lib/charnames.pm | 4 ++-- lib/charnames.t | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/charnames.pm b/lib/charnames.pm index 23c53b7..020ab7c 100644 --- a/lib/charnames.pm +++ b/lib/charnames.pm @@ -2,7 +2,7 @@ package charnames; use strict; use warnings; use File::Spec; -our $VERSION = '1.19'; +our $VERSION = '1.21'; use bytes (); # for $bytes::hint_bits @@ -803,7 +803,7 @@ sub import # as tested for in # lookup_names $^H{charnames_short} = delete $h{':short'} || 0; - my @scripts = map uc, keys %h; + my @scripts = map { uc quotemeta } keys %h; ## ## If utf8? warnings are enabled, and some scripts were given, diff --git a/lib/charnames.t b/lib/charnames.t index 443738a..dc6487a 100644 --- a/lib/charnames.t +++ b/lib/charnames.t @@ -700,6 +700,10 @@ is("\N{U+1D0C5}", "\N{BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASIS}"); is($res, "foo-foo-1--2-3"); } +{ use charnames qw(.*); + ok (! defined charnames::vianame("a"), "Verify that metachars in script names get quoted"); +} + { # Test scoping. Outer block sets up some things; inner blocks # override them, and then see if get restored. -- 2.7.4