Code cleanup: refactor the code that handles the escaping of HTML when 
viewing an entry with ?nohtml=1

        Patch by kareila. 

diffs (107 lines):

diff -r 648857570a1f -r d178217cf6d6 cgi-bin/LJ/CleanHTML.pm
--- a/cgi-bin/LJ/CleanHTML.pm   Tue Apr 13 06:28:29 2010 -0700
+++ b/cgi-bin/LJ/CleanHTML.pm   Tue Apr 13 07:15:22 2010 -0700
@@ -1440,4 +1440,13 @@ sub break_word {
     return $word;
 }
 
+sub quote_html {
+    my ( $string, $bool ) = @_;
+    return $string unless $bool;
+
+    # quote all non-LJ tags
+    $string =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
+    return $string;
+}
+
 1;
diff -r 648857570a1f -r d178217cf6d6 cgi-bin/LJ/S2.pm
--- a/cgi-bin/LJ/S2.pm  Tue Apr 13 06:28:29 2010 -0700
+++ b/cgi-bin/LJ/S2.pm  Tue Apr 13 07:15:22 2010 -0700
@@ -1907,12 +1907,8 @@ sub Entry_from_entryobj
     my $style_args = LJ::viewing_style_args( %$get, %opt_stylemine );
     
     #load and prepare subject and text of entry
-    my $subject = $entry_obj->subject_html;
-    my $text = $entry_obj->event_raw;
-    if ( $get->{nohtml} ) {
-        $subject =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-        $text    =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-    }
+    my $subject = LJ::CleanHTML::quote_html( $entry_obj->subject_html, 
$get->{nohtml} );
+    my $text = LJ::CleanHTML::quote_html( $entry_obj->event_raw, 
$get->{nohtml} );
     LJ::item_toutf8( $journal, \$subject, \$text, $entry_obj->props ) if 
$LJ::UNICODE && $entry_obj->props->{unknown8bit};
 
     my $suspend_msg = $entry_obj && $entry_obj->should_show_suspend_msg_to( 
$remote ) ? 1 : 0;
diff -r 648857570a1f -r d178217cf6d6 cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm        Tue Apr 13 06:28:29 2010 -0700
+++ b/cgi-bin/LJ/S2/EntryPage.pm        Tue Apr 13 07:15:22 2010 -0700
@@ -141,11 +141,7 @@ sub EntryPage
             my $pu = $com->{'posterid'} ? $user{$com->{'posterid'}} : undef;
 
             my $dtalkid = $com->{'talkid'} * 256 + $entry->anum;
-            my $text = $com->{'body'};
-            if ($get->{'nohtml'}) {
-                # quote all non-LJ tags
-                $text =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-            }
+            my $text = LJ::CleanHTML::quote_html( $com->{body}, $get->{nohtml} 
);
 
             LJ::CleanHTML::clean_comment(\$text, { 'preformatted' => 
$com->{'props'}->{'opt_preformatted'},
                                                    'anon_comment' => !$pu || ( 
$pu->is_identity && !$u->trusts_or_has_member( $pu ) ),
@@ -491,13 +487,8 @@ sub EntryPage_entry
         @taglist = sort { $a->{name} cmp $b->{name} } @taglist;
     }
 
-    my $subject = $entry->subject_html;
-    my $event = $entry->event_html;
-    if ($get->{'nohtml'}) {
-        # quote all non-LJ tags
-        $subject =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-        $event   =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-    }
+    my $subject = LJ::CleanHTML::quote_html( $entry->subject_html, 
$get->{nohtml} );
+    my $event = LJ::CleanHTML::quote_html( $entry->event_html, $get->{nohtml} 
);
 
     if ($opts->{enable_tags_compatibility} && @taglist) {
         $event .= LJ::S2::get_tags_text($opts->{ctx}, \...@taglist);
diff -r 648857570a1f -r d178217cf6d6 htdocs/talkread.bml
--- a/htdocs/talkread.bml       Tue Apr 13 06:28:29 2010 -0700
+++ b/htdocs/talkread.bml       Tue Apr 13 07:15:22 2010 -0700
@@ -384,21 +384,14 @@ body<=
 
     ###
     if ($item->{'subject'}) {
-        my $subject = $item->{'subject'};
-        if ($GET{'nohtml'}) {
-            # quote all non-LJ tags
-            $subject =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-        }
+        my $subject = LJ::CleanHTML::quote_html( $item->{subject}, 
$GET{nohtml} );
         LJ::CleanHTML::clean_subject(\$subject);
         BML::ebml(\$subject);
         $ret .= "<div id='entrysubj'>$subject</div><br />\n";
     }
 
 
-     if ($GET{'nohtml'}) {
-         # quote all non-LJ tags
-         $event =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-     }
+    $event = LJ::CleanHTML::quote_html( $event, $GET{nohtml} );
     $ret .= $event;
     $ret .= "</div>";
 
@@ -692,11 +685,7 @@ body<=
                                                                  
'anon_comment' => !$pu || ( $pu->is_identity && !$u->trusts_or_has_member( $pu 
) ),
                                                              });
                 BML::ebml(\$post->{'body'});
-                my $event = $post->{'body'};
-                if ($GET{'nohtml'}) {
-                    # quote all non-LJ tags
-                    $event =~ s{<(?!/?lj)(.*?)>} {&lt;$1&gt;}gi;
-                }
+                my $event = LJ::CleanHTML::quote_html( $post->{body}, 
$GET{nohtml} );
                 my $edit_html = $edittime ? "<br /><br /><span 
class='edittime'><em>" . BML::ml('.edittime', { editreason => $editreason, 
edittime => $edittime }) . "</em></span>" : "";
                 $ret .= "$event$edit_html";
 
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to