Re[2]: [Catalyst] uri_for() doesn't encode to utf8 first argument

2008-05-16 Thread Dmitriy S. Sinyavskiy
Hello, J..
You write 16 мая 2008 г., 4:27:07:

JS On Thu, May 15, 2008 at 11:50 PM, Dmitriy S. Sinyavskiy [EMAIL PROTECTED] 
wrote:
  So what about my patch and test?
  Is it right or someone can correct it?
  The silence is here for a week or more (



JS Jonathan Rockway asked you to regenerate without whitespace changes.

JS Just waiting on that from you to properly review it.

JS -J


It strange I haven't got received letter with this...may be deleted
by antispam (
Nevertheless I've done it now:

Index: Catalyst.pm
===
--- Catalyst.pm (revision 7759)
+++ Catalyst.pm (working copy)
@@ -948,10 +948,12 @@
 my $params =
   ( scalar @args  ref $args[$#args] eq 'HASH' ? pop @args : {} );
 
+$path =~ s!/+!/!g; # strip extra slashes '///'
+unshift(@args, split('/', $path));
 carp uri_for called with undef argument if grep { ! defined $_ } @args;
 s/([^$URI::uric])/$URI::Escape::escapes{$1}/go for @args;
 
-unshift(@args, $path);
+
 
 unless (defined $path  $path =~ s!^/!!) { # in-place strip
 my $namespace = $c-namespace;



-- 
 dreelmailto:[EMAIL PROTECTED]
 Dmitriy S. Sinyavskiy
 Web-developerPerl, Catalyst, MSSQL
 FGUE EZANTelecommunication, data transfer networks and 
devices.  


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re[2]: [Catalyst] uri_for() doesn't encode to utf8 first argument

2008-05-06 Thread Dmitriy S. Sinyavskiy
The -diff

Index: Catalyst.pm
===
--- Catalyst.pm (revision 7629)
+++ Catalyst.pm (working copy)
@@ -54,7 +54,7 @@
 
 __PACKAGE__-mk_classdata($_)
   for qw/components arguments dispatcher engine log dispatcher_class
-  engine_class context_class request_class response_class stats_class 
+  engine_class context_class request_class response_class stats_class
   setup_finished/;
 
 __PACKAGE__-dispatcher_class('Catalyst::Dispatcher');
@@ -112,30 +112,30 @@
 
 ### in lib/MyApp.pm
 use Catalyst qw/-Debug/; # include plugins here as well
-
+
 ### In lib/MyApp/Controller/Root.pm (autocreated)
 sub foo : Global { # called for /foo, /foo/1, /foo/1/2, etc.
 my ( $self, $c, @args ) = @_; # args are qw/1 2/ for /foo/1/2
 $c-stash-{template} = 'foo.tt'; # set the template
 # lookup something from db -- stash vars are passed to TT
-$c-stash-{data} = 
+$c-stash-{data} =
   $c-model('Database::Foo')-search( { country = $args[0] } );
 if ( $c-req-params-{bar} ) { # access GET or POST parameters
 $c-forward( 'bar' ); # process another action
-# do something else after forward returns
+# do something else after forward returns
 }
 }
-
+
 # The foo.tt TT template can use the stash data from the database
 [% WHILE (item = data.next) %]
 [% item.foo %]
 [% END %]
-
+
 # called for /bar/of/soap, /bar/of/soap/10, etc.
 sub bar : Path('/bar/of/soap') { ... }
 
 # called for all actions, from the top-most controller downwards
-sub auto : Private { 
+sub auto : Private {
 my ( $self, $c ) = @_;
 if ( !$c-user_exists ) { # Catalyst::Plugin::Authentication
 $c-res-redirect( '/login' ); # require login
@@ -143,9 +143,9 @@
 }
 return 1; # success; carry on to next action
 }
-
+
 # called after all actions are finished
-sub end : Private { 
+sub end : Private {
 my ( $self, $c ) = @_;
 if ( scalar @{ $c-error } ) { ... } # handle errors
 return if $c-res-body; # already have a response
@@ -155,20 +155,20 @@
 ### in MyApp/Controller/Foo.pm
 # called for /foo/bar
 sub bar : Local { ... }
-
+
 # called for /blargle
 sub blargle : Global { ... }
-
+
 # an index action matches /foo, but not /foo/1, etc.
 sub index : Private { ... }
-
+
 ### in MyApp/Controller/Foo/Bar.pm
 # called for /foo/bar/baz
 sub baz : Local { ... }
-
+
 # first Root auto is called, then Foo auto, then this
 sub auto : Private { ... }
-
+
 # powerful regular expression paths are also possible
 sub details : Regex('^product/(\w+)/details$') {
 my ( $self, $c ) = @_;
@@ -249,7 +249,7 @@
 environment settings override the application, with MYAPP_STATS having the
 highest priority.
 
-e.g. 
+e.g.
 
use Catalyst qw/-Stats=1/
 
@@ -320,8 +320,8 @@
 
 =head2 $c-detach()
 
-The same as Cforward, but doesn't return to the previous action when 
-processing is finished. 
+The same as Cforward, but doesn't return to the previous action when
+processing is finished.
 
 When called with no arguments it escapes the processing chain entirely.
 
@@ -348,7 +348,7 @@
 $c-stash-{foo} = $bar;
 $c-stash( { moose = 'majestic', qux = 0 } );
 $c-stash( bar = 1, gorch = 2 ); # equivalent to passing a hashref
-
+
 # stash is automatically passed to the view for use in a template
 $c-forward( 'MyApp::View::TT' );
 
@@ -456,7 +456,7 @@
 return $comp;
 }
 
-# Find possible names for a prefix 
+# Find possible names for a prefix
 
 sub _comp_names {
 my ( $c, @prefixes ) = @_;
@@ -528,7 +528,7 @@
 
 Any extra arguments are directly passed to ACCEPT_CONTEXT.
 
-If the name is omitted, it will look for 
+If the name is omitted, it will look for
  - a model object in $c-stash{current_model_instance}, then
  - a model name in $c-stash-{current_model}, then
  - a config setting 'default_model', or
@@ -542,7 +542,7 @@
 @args )
   if $name;
 if (ref $c) {
-return $c-stash-{current_model_instance} 
+return $c-stash-{current_model_instance}
   if $c-stash-{current_model_instance};
 return $c-model( $c-stash-{current_model} )
   if $c-stash-{current_model};
@@ -573,7 +573,7 @@
 
 Any extra arguments are directly passed to ACCEPT_CONTEXT.
 
-If the name is omitted, it will look for 
+If the name is omitted, it will look for
  - a view object in $c-stash{current_view_instance}, then
  - a view name in $c-stash-{current_view}, then
  - a config setting 'default_view', or
@@ -587,7 +587,7 @@
 @args )
   if $name;
 if (ref $c) {
-return $c-stash-{current_view_instance} 
+return $c-stash-{current_view_instance}
   if $c-stash-{current_view_instance};
 return