From 65ffb3cef2a2421a586d184a2814ed58a47faa6a Mon Sep 17 00:00:00 2001 From: ondrass Date: Fri, 10 May 2002 12:50:41 +0000 Subject: [PATCH] Added new config flag 'allow_charset_search' for those unfortunate using 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 | 25 +++++++++++++++++++++++++ functions/imap_search.php | 4 ++-- plugins/filters/filters.php | 4 ++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/config/conf.pl b/config/conf.pl index c00834b5..352bf455 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -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 = ; + 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 diff --git a/functions/imap_search.php b/functions/imap_search.php index bffad029..0d9fb306 100644 --- a/functions/imap_search.php +++ b/functions/imap_search.php @@ -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']) diff --git a/plugins/filters/filters.php b/plugins/filters/filters.php index 3280eb20..4a984a3c 100644 --- a/plugins/filters/filters.php +++ b/plugins/filters/filters.php @@ -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']) -- 2.25.1