From 3d59fc384d707b7fa628ecc565d12ffa8bd2865e Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 14 Mar 2014 16:07:11 +0100 Subject: [PATCH] Bug 11944: replace uri_escape with uri_escape_utf8 everywhere To reproduce, edit, index notice with utf-8 char and search for it Signed-off-by: Paola Rossi Signed-off-by: Bernardo Gonzalez Kriegel Signed-off-by: Dobrica Pavlinusic Signed-off-by: Martin Renvoize Signed-off-by: Tomas Cohen Arazi --- C4/Search.pm | 18 +++++++++--------- C4/Search/History.pm | 2 +- authorities/authorities-home.pl | 2 +- cataloguing/addbiblio.pl | 2 +- cataloguing/additem.pl | 2 +- members/pay.pl | 2 +- reports/guided_reports.pl | 2 +- reserve/renewscript.pl | 2 +- serials/routing-preview.pl | 2 +- serials/routing.pl | 2 +- serials/subscription-frequency.pl | 2 +- serials/subscription-numberpattern.pl | 2 +- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index 044e6e0..42cdc23 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -1479,17 +1479,17 @@ sub buildQuery { if ( @limits ) { $q .= ' and '.join(' and ', @limits); } - return ( undef, $q, $q, "q=ccl=".uri_escape($q), $q, '', '', '', '', 'ccl' ); + return ( undef, $q, $q, "q=ccl=".uri_escape_utf8($q), $q, '', '', '', '', 'ccl' ); } if ( $query =~ /^cql=/ ) { - return ( undef, $', $', "q=cql=".uri_escape($'), $', '', '', '', '', 'cql' ); + return ( undef, $', $', "q=cql=".uri_escape_utf8($'), $', '', '', '', '', 'cql' ); } if ( $query =~ /^pqf=/ ) { if ($query_desc) { - $query_cgi = "q=".uri_escape($query_desc); + $query_cgi = "q=".uri_escape_utf8($query_desc); } else { $query_desc = $'; - $query_cgi = "q=pqf=".uri_escape($'); + $query_cgi = "q=pqf=".uri_escape_utf8($'); } return ( undef, $', $', $query_cgi, $query_desc, '', '', '', '', 'pqf' ); } @@ -1711,7 +1711,7 @@ sub buildQuery { $group_OR_limits{$k} .= " or " if $group_OR_limits{$k}; $limit_desc .= " or " if $group_OR_limits{$k}; $group_OR_limits{$k} .= "$this_limit"; - $limit_cgi .= "&limit=" . uri_escape($this_limit); + $limit_cgi .= "&limit=" . uri_escape_utf8($this_limit); $limit_desc .= " $this_limit"; } @@ -1719,7 +1719,7 @@ sub buildQuery { else { $limit .= " and " if $limit || $query; $limit .= "$this_limit"; - $limit_cgi .= "&limit=" . uri_escape($this_limit); + $limit_cgi .= "&limit=" . uri_escape_utf8($this_limit); if ($this_limit =~ /^branch:(.+)/) { my $branchcode = $1; my $branchname = GetBranchName($branchcode); @@ -1809,9 +1809,9 @@ sub _build_initial_query { #e.g. " and kw,wrdl:test" $params->{query} .= $operator . $operand; - $params->{query_cgi} .= "&op=".uri_escape($operator) if $operator; - $params->{query_cgi} .= "&idx=".uri_escape($params->{index}) if $params->{index}; - $params->{query_cgi} .= "&q=".uri_escape($params->{original_operand}) if $params->{original_operand}; + $params->{query_cgi} .= "&op=".uri_escape_utf8($operator) if $operator; + $params->{query_cgi} .= "&idx=".uri_escape_utf8($params->{index}) if $params->{index}; + $params->{query_cgi} .= "&q=".uri_escape_utf8($params->{original_operand}) if $params->{original_operand}; #e.g. " and kw,wrdl: test" $params->{query_desc} .= $operator . $params->{index_plus} . " " . $params->{original_operand}; diff --git a/C4/Search/History.pm b/C4/Search/History.pm index d82d14e..4330692 100644 --- a/C4/Search/History.pm +++ b/C4/Search/History.pm @@ -152,7 +152,7 @@ sub set_to_session { my $session = C4::Auth::get_session($sessionID); return () unless $session; $session->param( 'search_history', - uri_escape( encode_json($search_history) ) ); + uri_escape_utf8( encode_json($search_history) ) ); } 1; diff --git a/authorities/authorities-home.pl b/authorities/authorities-home.pl index d499508..f41775c 100755 --- a/authorities/authorities-home.pl +++ b/authorities/authorities-home.pl @@ -146,7 +146,7 @@ if ( $op eq "do_search" ) { # next/previous would not work anymore # construction of the url of each page - my $value_url = uri_escape($value); + my $value_url = uri_escape_utf8($value); my $base_url = "authorities-home.pl?" ."marclist=$marclist" ."&and_or=$and_or" diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index fe7e1fd..d969215 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -874,7 +874,7 @@ if ( $op eq "addbiblio" ) { .'&frameworkcode='.$frameworkcode .'&circborrowernumber='.$fa_circborrowernumber .'&branch='.$fa_branch - .'&barcode='.uri_escape($fa_barcode) + .'&barcode='.uri_escape_utf8($fa_barcode) .'&stickyduedate='.$fa_stickyduedate .'&duedatespec='.$fa_duedatespec ); diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index 047b733..09e2d97 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -551,7 +551,7 @@ if ($op eq "additem") { print $input->redirect( '/cgi-bin/koha/circ/circulation.pl?' .'borrowernumber='.$fa_circborrowernumber - .'&barcode='.uri_escape($fa_barcode) + .'&barcode='.uri_escape_utf8($fa_barcode) .'&duedatespec='.$fa_duedatespec .'&stickyduedate=1' ); diff --git a/members/pay.pl b/members/pay.pl index a543823..0e41f80 100755 --- a/members/pay.pl +++ b/members/pay.pl @@ -173,7 +173,7 @@ sub redirect_to_paycollect { $redirect .= get_for_redirect( 'notify_id', "notify_id$line_no", 0 ); $redirect .= get_for_redirect( 'notify_level', "notify_level$line_no", 0 ); $redirect .= get_for_redirect( 'accountlines_id', "accountlines_id$line_no", 0 ); - $redirect .= q{&} . 'payment_note' . q{=} . uri_escape( $input->param("payment_note_$line_no") ); + $redirect .= q{&} . 'payment_note' . q{=} . uri_escape_utf8( $input->param("payment_note_$line_no") ); $redirect .= '&remote_user='; $redirect .= $user; return print $input->redirect($redirect); diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 784e62e..c357c70 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -754,7 +754,7 @@ elsif ($phase eq 'Run this report'){ my $totpages = int($total/$limit) + (($total % $limit) > 0 ? 1 : 0); my $url = "/cgi-bin/koha/reports/guided_reports.pl?reports=$report_id&phase=Run%20this%20report&limit=$limit"; if (@sql_params) { - $url = join('&sql_params=', $url, map { URI::Escape::uri_escape($_) } @sql_params); + $url = join('&sql_params=', $url, map { URI::Escape::uri_escape_utf8($_) } @sql_params); } $template->param( 'results' => \@rows, diff --git a/reserve/renewscript.pl b/reserve/renewscript.pl index 2e01008..56fab0b 100755 --- a/reserve/renewscript.pl +++ b/reserve/renewscript.pl @@ -127,7 +127,7 @@ foreach my $barcode (@barcodes) { # redirection to the referrer page # if ( $input->param('destination') eq "circ" ) { - $cardnumber = uri_escape($cardnumber); + $cardnumber = uri_escape_utf8($cardnumber); print $input->redirect( '/cgi-bin/koha/circ/circulation.pl?findborrower=' . $cardnumber . $failedrenews diff --git a/serials/routing-preview.pl b/serials/routing-preview.pl index 1eda74d..1f219cc 100755 --- a/serials/routing-preview.pl +++ b/serials/routing-preview.pl @@ -133,7 +133,7 @@ $routingnotes =~ s/\n/\
/g; $template->param( title => $subs->{'bibliotitle'}, issue => $issue, - issue_escaped => URI::Escape::uri_escape($issue), + issue_escaped => URI::Escape::uri_escape_utf8($issue), subscriptionid => $subscriptionid, memberloop => $memberloop, routingnotes => $routingnotes, diff --git a/serials/routing.pl b/serials/routing.pl index f822517..5dd53fe 100755 --- a/serials/routing.pl +++ b/serials/routing.pl @@ -62,7 +62,7 @@ if($op eq 'add'){ if($op eq 'save'){ my $sth = $dbh->prepare('UPDATE serial SET routingnotes = ? WHERE subscriptionid = ?'); $sth->execute($notes,$subscriptionid); - my $urldate = URI::Escape::uri_escape($date_selected); + my $urldate = URI::Escape::uri_escape_utf8($date_selected); print $query->redirect("routing-preview.pl?subscriptionid=$subscriptionid&issue=$urldate"); } diff --git a/serials/subscription-frequency.pl b/serials/subscription-frequency.pl index d8d1ec4..80c7440 100755 --- a/serials/subscription-frequency.pl +++ b/serials/subscription-frequency.pl @@ -33,4 +33,4 @@ if ($auth_status ne "ok") { my $frequencyrecord=GetSubscriptionFrequency($frqid); binmode STDOUT, ":encoding(UTF-8)"; print $input->header(-type => 'text/plain', -charset => 'UTF-8'); -print "{".join (",",map { "\"$_\":\"".uri_escape($frequencyrecord->{$_})."\"" }sort keys %$frequencyrecord)."}"; +print "{".join (",",map { "\"$_\":\"".uri_escape_utf8($frequencyrecord->{$_})."\"" }sort keys %$frequencyrecord)."}"; diff --git a/serials/subscription-numberpattern.pl b/serials/subscription-numberpattern.pl index bcb7eae..a58b10a 100755 --- a/serials/subscription-numberpattern.pl +++ b/serials/subscription-numberpattern.pl @@ -36,4 +36,4 @@ my $numpatternid=$input->param("numberpattern_id"); my $numberpatternrecord=GetSubscriptionNumberpattern($numpatternid); binmode STDOUT, ":encoding(UTF-8)"; print $input->header(-type => 'text/plain', -charset => 'UTF-8'); -print "{",join (",",map {"\"$_\":\"".(uri_escape($numberpatternrecord->{$_}) // '')."\"" }sort keys %$numberpatternrecord),"}"; +print "{",join (",",map {"\"$_\":\"".(uri_escape_utf8($numberpatternrecord->{$_}) // '')."\"" }sort keys %$numberpatternrecord),"}"; -- 2.1.0