[ic] Allow hyphens in CodeDef patch
Richard Templet
richard at endpoint.com
Thu Jul 2 22:02:24 UTC 2009
I ran across an issue where I wanted to use a hyphen in an ActionMap for SEO reasons but couldn't do it as long as my ActionMap used a CodeDef to define the routine to call. If I inlined the code in the ActionMap it worked just fine. What I found was that any name after CodeDef had the hyphens converted to underscores and then checked to make sure it didn't have any non-word characters in it. In knowing how nice hyphens are for SEO reasons and how nice it is to have your ActionMap routines in perl modules for syntax checking etc, I figured it would be handy to change it so that just hyphen, underscore and non-word characters were allowed.
To test this change I created both ActionMaps and Filters named test-123 and test_123 tested them using ITL, [perl] ,[calc] and inside a global perl module and didn't have any issues with errors or loss of functionality.
--- a/interchange/lib/Vend/Config.pm
+++ b/interchange/lib/Vend/Config.pm
@@ -4936,8 +4936,7 @@ sub parse_mapped_code {
# Canonicalize
$p = $tagCanon{lc $p} || ''
or ::logDebug("bizarre mapped code line '$value'");
- $tag =~ tr/-/_/;
- $tag =~ s/\W//g
+ $tag =~ s/[^-_\w]+//g
and config_warn("Bad characters removed from '%s'.", $tag);
my $repos = $C ? ($C->{CodeDef} ||= {}) : ($Global::CodeDef ||= {});
--
Richard Templet
End Point Corp.
(919) 300-7303
More information about the interchange-users
mailing list