Fri Feb 5 17:40:51 2010 UTC ()
Add a patch from Jonathan Angliss fixing IMAP search problems:
http://thread.gmane.org/gmane.mail.squirrelmail.user/36642
Bump PKGREVISION.
(wiz)
diff -r1.110 -r1.111 pkgsrc/mail/squirrelmail/Makefile
diff -r1.56 -r1.57 pkgsrc/mail/squirrelmail/distinfo
diff -r0 -r1.5 pkgsrc/mail/squirrelmail/patches/patch-ac
--- pkgsrc/mail/squirrelmail/Makefile 2009/10/04 01:27:15 1.110
+++ pkgsrc/mail/squirrelmail/Makefile 2010/02/05 17:40:51 1.111
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.110 2009/10/04 01:27:15 taca Exp $
+# $NetBSD: Makefile,v 1.111 2010/02/05 17:40:51 wiz Exp $
DISTNAME= squirrelmail-1.4.20-RC2
PKGNAME= ${DISTNAME:S/-RC2/rc2/}
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= mail www
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=squirrelmail/}
EXTRACT_SUFX= .tar.bz2
--- pkgsrc/mail/squirrelmail/distinfo 2009/10/04 01:27:15 1.56
+++ pkgsrc/mail/squirrelmail/distinfo 2010/02/05 17:40:51 1.57
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.56 2009/10/04 01:27:15 taca Exp $
+$NetBSD: distinfo,v 1.57 2010/02/05 17:40:51 wiz Exp $
SHA1 (squirrelmail-1.4.20-RC2.tar.bz2) = f1cdccfdd17d8974adc0b79aba44b62f98f78f64
RMD160 (squirrelmail-1.4.20-RC2.tar.bz2) = f736e33af6f7b5a4c49f96968ed3fdeb2d42f06f
Size (squirrelmail-1.4.20-RC2.tar.bz2) = 516825 bytes
SHA1 (patch-aa) = 4c5556c804c1b728eec87322272abb06edcfcc2a
SHA1 (patch-ab) = 503bef625388a3224ad6f54aa332190e7440dde3
+SHA1 (patch-ac) = 1145e03ab1b084e27c2b97958d7fc13720977357
SHA1 (patch-ai) = 701fdbc84afde5f8e255af13ba0e44469343e17c
$NetBSD: patch-ac,v 1.5 2010/02/05 17:40:51 wiz Exp $
Patch for fixing IMAP search problems:
http://thread.gmane.org/gmane.mail.squirrelmail.user/36642
--- functions/imap_search.php.orig 2010-02-05 18:35:41.000000000 +0100
+++ functions/imap_search.php
@@ -46,22 +46,23 @@ function sqimap_search($imapConnection,
on the client side, but should be fixed on the server
as per the RFC */
- if ($imap_server_type == 'macosx' || $imap_server_type == 'hmailserver') {
- foreach ($multi_search as $multi_search_part) {
- if (strtoupper($languages[$squirrelmail_language]['CHARSET']) == 'ISO-2022-JP') {
- $multi_search_part = mb_convert_encoding($multi_search_part, 'JIS', 'auto');
- }
- $search_string .= $search_where . ' ' .$multi_search_part . ' ';
+ if (strtoupper($languages[$squirrelmail_language]['CHARSET'] == 'ISO-2022-JP')) {
+ foreach($multi_search as $idx=>$search_part) {
+ $multi_search[$idx] = mb_convert_encoding($search_parth, 'JIS', 'auto');
}
}
+
+ $search_lit = array();
+
+ if ($imap_server_type == 'macosx' || $imap_server_type == 'hmailserver') {
+ $search_string .= $search_where . ' ' . implode(' ', $multi_search);
+ }
else {
- foreach ($multi_search as $multi_search_part) {
- if (strtoupper($languages[$squirrelmail_language]['CHARSET']) == 'ISO-2022-JP') {
- $multi_search_part = mb_convert_encoding($multi_search_part, 'JIS', 'auto');
- }
- $search_string .= $search_where . ' {' . strlen($multi_search_part)
- . "}\r\n" . $multi_search_part . ' ';
- }
+ $search_string .= $search_where;
+ $search_lit = array(
+ 'command' => '',
+ 'literal_args' => $multi_search
+ );
}
$search_string = trim($search_string);
@@ -76,15 +77,24 @@ function sqimap_search($imapConnection,
$ss = "SEARCH ALL $search_string";
}
- /* read data back from IMAP */
- $readin = sqimap_run_command($imapConnection, $ss, false, $result, $message, $uid_support);
+ if (empty($search_lit)) {
+ /* read data back from IMAP */
+ $readin = sqimap_run_command($imapConnection, $ss, false, $result, $message, $uid_support);
+ } else {
+ $search_lit['command'] = $ss;
+ $readin = sqimap_run_literal_command($imapConnection, $search_lit, false, $result, $message, $uid_support);
+ }
/* try US-ASCII charset if search fails */
if (isset($languages[$squirrelmail_language]['CHARSET'])
&& strtolower($result) == 'no') {
$ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_string";
- $readin = sqimap_run_command ($imapConnection, $ss, true,
- $result, $message, $uid_support);
+ if (empty($search_lit)) {
+ $readin = sqimap_run_command($imapConnection, $ss, false, $result, $message, $uid_support);
+ } else {
+ $search_lit['command'] = $ss;
+ $readin = sqimap_run_literal_command($imapConnection, $search_lit, false, $result, $message, $uid_support);
+ }
}
unset($messagelist);