about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-04-28 04:50:17 +0000
committerEric Wong <e@80x24.org>2014-04-28 04:51:46 +0000
commit59e7af124580f46bdb2dec21273607599ba1e8f9 (patch)
tree8c62802d9a9881d545a2d1493b9f8db4f5c6fbd8 /lib/PublicInbox
parent31b13cdcb3ab2a4f9332f2aab10fdda7dbbe296c (diff)
downloadpublic-inbox-59e7af124580f46bdb2dec21273607599ba1e8f9.tar.gz
uri_escape => uri_escape_utf8
We should be able to deal with URIs with non-ASCII characters in
them.  I only found this problem when looking at archives with
non-English spam :x
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/Hval.pm4
-rw-r--r--lib/PublicInbox/View.pm11
2 files changed, 8 insertions, 7 deletions
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index 1a83cf10..a93e8c24 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -7,7 +7,7 @@ use strict;
 use warnings;
 use fields qw(raw);
 use Encode qw(find_encoding);
-use URI::Escape qw(uri_escape);
+use URI::Escape qw(uri_escape_utf8);
 
 my $enc_ascii = find_encoding('us-ascii');
 
@@ -52,7 +52,7 @@ sub ascii_html {
 }
 
 sub as_html { ascii_html($_[0]->{raw}) }
-sub as_href { ascii_html(uri_escape($_[0]->{raw})) }
+sub as_href { ascii_html(uri_escape_utf8($_[0]->{raw})) }
 
 sub raw {
         if (defined $_[1]) {
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 663eff5b..c6ecee6e 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -4,7 +4,7 @@ package PublicInbox::View;
 use strict;
 use warnings;
 use PublicInbox::Hval;
-use URI::Escape qw/uri_escape/;
+use URI::Escape qw/uri_escape_utf8/;
 use Encode qw/find_encoding/;
 use Encode::MIME::Header;
 use Email::MIME::ContentType qw/parse_content_type/;
@@ -213,12 +213,13 @@ sub html_footer {
 
         my $subj = $mime->header('Subject') || '';
         $subj = "Re: $subj" unless $subj =~ /\bRe:/;
-        my $irp = uri_escape($mime->header_obj->header_raw('Message-ID') || '');
+        my $irp = uri_escape_utf8(
+                        $mime->header_obj->header_raw('Message-ID') || '');
         delete $cc{$to};
-        $to = uri_escape($to);
-        $subj = uri_escape($subj);
+        $to = uri_escape_utf8($to);
+        $subj = uri_escape_utf8($subj);
 
-        my $cc = uri_escape(join(',', values %cc));
+        my $cc = uri_escape_utf8(join(',', values %cc));
         my $href = "mailto:$to?In-Reply-To=$irp&Cc=${cc}&Subject=$subj";
 
         '<a href="' . ascii_html($href) . '">reply</a>';