Use $check_int so that it works when querying both by interest and by 
interest id. Truncate before escape, not the other way around. Tweak variables 
used.

        Patch by kareila. 

diffs (37 lines):

diff -r c17d657a43ed -r 0842a46e3e81 htdocs/interests.bml
--- a/htdocs/interests.bml      Fri Oct 08 11:18:56 2010 +0800
+++ b/htdocs/interests.bml      Fri Oct 08 12:16:54 2010 +0800
@@ -390,18 +390,18 @@ body<=
             return "<?h1 $ML{'Error'} h1?><?p $ML{'.error.ignored'} p?>";
         }
 
-        my $e_int = LJ::ehtml($GET{int});
+        my $e_int = LJ::ehtml( $check_int );
 
         my $ret = '';
 
-        # determine whether the interest is too long: if the interest already 
exists, a long interest will result in $e_int and the return value of 
LJ::get_interest not matching
-        # if it didn't already exist, we fall back on just checking the length 
of $e_int
-        my $exists = $interest;
-        if ( ( $exists && $e_int ne $interest ) || length( $e_int ) > 
LJ::CMAX_SITEKEYWORD ) {
+        # determine whether the interest is too long:
+        # 1. if the interest already exists, a long interest will result in 
$check_int and $interest not matching
+        # 2. if it didn't already exist, we fall back on just checking the 
length of $check_int
+        if ( ( $interest && $check_int ne $interest ) || length( $check_int ) 
> LJ::CMAX_SITEKEYWORD ) {
 
             # if the searched-for interest is too long, we use the short 
version from here on
             my $e_int_long = $e_int;
-            $e_int = $exists ? LJ::ehtml( $exists ) : substr( $e_int, 0, 
LJ::CMAX_SITEKEYWORD );
+            $e_int = LJ::ehtml( $interest ? $interest : substr( $check_int, 0, 
LJ::CMAX_SITEKEYWORD ) );
             $ret .= "<?p " . BML::ml( '.error.longinterest', { sitename => 
$LJ::SITENAMESHORT, old_int => $e_int_long, new_int => $e_int, maxlen => 
LJ::CMAX_SITEKEYWORD } ) . " p?>";
         }
 
@@ -420,7 +420,7 @@ body<=
         $ret .= "</table>";
 
         # no results
-        unless ( $exists ) {
+        unless ( $interest ) {
             $ret .= "<?h1 $ML{'.nocomms.header'} h1?><?p ";
             $ret .= BML::ml( '.nocomms.text', { 'int' => $e_int, 'aopts' => 
qq(href="$LJ::SITEROOT/community/create") } );
             $ret .= " p?><?h1 $ML{'.nousers.header'} h1?><?p ";
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to