Added new config flag 'allow_charset_search' for those unfortunate using
authorondrass <ondrass@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 10 May 2002 12:50:41 +0000 (12:50 +0000)
committerondrass <ondrass@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 10 May 2002 12:50:41 +0000 (12:50 +0000)
other charset than US-ASCII with server which doesn't support it.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2815 7612ce4b-ef26-0410-bec9-ea0150e637f0

config/conf.pl
functions/imap_search.php
plugins/filters/filters.php

index c00834b55559ae10056406ba187603a2978b69ea..352bf455bf3997f83af5a8f3c619a44f97d72c94 100755 (executable)
@@ -426,6 +426,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) {
         if ( lc($edit_identity) eq "false" ) {
             print "13. Allow editing of name     : $WHT$edit_name$NRM\n";
         }
+        print "14. Allow server charset search : $WHT$allow_charset_search$NRM\n";
         print "\n";
         print "R   Return to Main Menu\n";
     } elsif ( $menu == 5 ) {
@@ -606,6 +607,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) {
             elsif ( $command == 11 ) { $allow_thread_sort        = command312(); }
             elsif ( $command == 12 ) { $allow_server_sort        = command313(); }
             elsif ( $command == 13 ) { $edit_name                = command311(); }
+            elsif ( $command == 14 ) { $allow_charset_search     = command314(); }
         } elsif ( $menu == 5 ) {
             if ( $command == 1 ) { command41(); }
             elsif ( $command == 2 ) { $theme_css = command42(); }
@@ -1744,6 +1746,27 @@ sub command313 {
     return $allow_server_sort;
 }
 
+sub command314 {
+    print "This option allows you to choose if SM uses charset search\n";
+    print "Your IMAP server must support the SEARCH CHARSET command for this to work\n";
+    print "\n";
+
+    if ( lc($allow_charset_search) eq "true" ) {
+        $default_value = "y";
+    } else {
+        $default_value = "n";
+    }
+    print "Allow charset searching? (y/n) [$WHT$default_value$NRM]: $WHT";
+    $allow_charset_search = <STDIN>;
+    if ( ( $allow_charset_search =~ /^y\n/i ) || ( ( $allow_charset_search =~ /^\n/ ) && ( $default_value eq "y" ) ) ) {
+        $allow_charset_search = "true";
+    } else {
+        $allow_charset_search = "false";
+    }
+    return $allow_charset_search;
+}
+
+
 sub command41 {
     print "\nNow we will define the themes that you wish to use.  If you have added\n";
     print "a theme of your own, just follow the instructions (?) about how to add\n";
@@ -2321,6 +2344,8 @@ sub save_data {
         print CF "\$allow_thread_sort        = $allow_thread_sort;\n";
        # boolean
         print CF "\$allow_server_sort        = $allow_server_sort;\n";
+        # boolean
+        print CF "\$allow_charset_search        = $allow_charset_search;\n";
         print CF "\n";
        
        # all plugins are strings
index bffad029b37d42bbd0d2829563ba8acecb24def3..0d9fb3066c3b07bf173cbc6c7d7503ffc983a1a6 100644 (file)
@@ -21,7 +21,7 @@ function sqimap_search($imapConnection, $search_where, $search_what, $mailbox,
                        $color, $search_position = '', $search_all, $count_all) {
 
     global $msgs, $message_highlight_list, $squirrelmail_language, $languages,
-           $index_order, $pos;
+           $index_order, $pos, $allow_charset_search;
 
     $pos = $search_position;
 
@@ -41,7 +41,7 @@ function sqimap_search($imapConnection, $search_where, $search_what, $mailbox,
     $search_string = trim($search_string);
 
     /* now use $search_string in the imap search */
-    if (isset($languages[$squirrelmail_language]['CHARSET']) &&
+    if ($allow_charset_search && isset($languages[$squirrelmail_language]['CHARSET']) &&
         $languages[$squirrelmail_language]['CHARSET']) {
         $ss = "SEARCH CHARSET "
             . strtoupper($languages[$squirrelmail_language]['CHARSET']) 
index 3280eb207d55821099d289d9980b4125f987d90e..4a984a3c5d7c9edb1fbf7750b23578f654e8947e 100644 (file)
@@ -317,14 +317,14 @@ function user_filters($imap_stream) {
 }
 
 function filter_search_and_delete($imap, $where, $what, $where_to, $user_scan) {
-    global $languages, $squirrelmail_language;
+    global $languages, $squirrelmail_language, $allow_charset_search;
     if ($user_scan == 'new') {
         $category = 'UNSEEN';
     } else {
         $category = 'ALL';
     }
 
-    if (isset($languages[$squirrelmail_language]['CHARSET']) &&
+    if ($allow_charset_search && isset($languages[$squirrelmail_language]['CHARSET']) &&
         $languages[$squirrelmail_language]['CHARSET']) {
         $search_str = "SEARCH CHARSET "
             . strtoupper($languages[$squirrelmail_language]['CHARSET'])