Add a few more tests for this issue in various other positions and dispatch types...
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index a6be851..edd217e 100644 (file)
@@ -1100,7 +1100,6 @@ EOF
     # modifiers work correctly in MyApp (as you have to call setup _before_
     # applying modifiers).
     Scope::Upper::reap(sub {
-        die $@ if $@; # This does not appear to do what you think it does.
         my $meta = Class::MOP::get_metaclass_by_name($class);
         if ( $meta->is_immutable && ! { $meta->immutable_options }->{inline_constructor} ) {
             die "You made your application class ($class) immutable, "
@@ -1189,7 +1188,7 @@ sub uri_for {
       ( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
 
     carp "uri_for called with undef argument" if grep { ! defined $_ } @args;
-    s/([^$URI::uric])/$URI::Escape::escapes{$1}/go for @args;
+    s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go for @args;
 
     unshift(@args, $path);
 
@@ -1223,7 +1222,7 @@ sub uri_for {
               $_ = "$_";
               utf8::encode( $_ ) if utf8::is_utf8($_);
               # using the URI::Escape pattern here so utf8 chars survive
-              s/([^A-Za-z0-9\-_.!~*'() ])/$URI::Escape::escapes{$1}/go;
+              s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go;
               s/ /+/g;
               "${key}=$_"; } ( ref $val eq 'ARRAY' ? @$val : $val ));
       } @keys);