about summary refs log tree commit homepage
path: root/lib/PublicInbox/Hval.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Hval.pm')
-rw-r--r--lib/PublicInbox/Hval.pm20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index 47b41a58..09ae2676 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -5,12 +5,11 @@
 package PublicInbox::Hval;
 use strict;
 use warnings;
-use fields qw(raw -as_utf8);
+use fields qw(raw);
 use Encode qw(find_encoding);
 use CGI qw(escapeHTML);
 use URI::Escape qw(uri_escape);
 
-my $enc_utf8 = find_encoding('utf8');
 my $enc_ascii = find_encoding('us-ascii');
 
 sub new {
@@ -39,14 +38,17 @@ sub new_oneline {
         $class->new($raw);
 }
 
-sub as_utf8 {
-        my ($self) = @_;
-        $self->{-as_utf8} ||= $enc_utf8->encode($self->{raw});
-}
-
 sub ascii_html { $enc_ascii->encode(escapeHTML($_[0]), Encode::HTMLCREF) }
 
-sub as_html { ascii_html($_[0]->as_utf8) }
-sub as_href { ascii_html(uri_escape($_[0]->as_utf8)) }
+sub as_html { ascii_html($_[0]->{raw}) }
+sub as_href { ascii_html(uri_escape($_[0]->{raw})) }
+
+sub raw {
+        if (defined $_[1]) {
+                $_[0]->{raw} = $_[1];
+        } else {
+                $_[0]->{raw};
+        }
+}
 
 1;