[dovecot-cvs] dovecot/src/imap Makefile.am,1.4,1.5 cmd-search.c,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Sun Nov 3 10:39:45 EET 2002
- Previous message: [dovecot-cvs] dovecot/src Makefile.am,1.1.1.1,1.2
- Next message: [dovecot-cvs] dovecot/src/lib-charset .cvsignore,NONE,1.1 Makefile.am,NONE,1.1 charset-ascii.c,NONE,1.1 charset-iconv.c,NONE,1.1 charset-utf8.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/imap
In directory danu:/tmp/cvs-serv3305/src/imap
Modified Files:
Makefile.am cmd-search.c
Log Message:
SEARCH CHARSET support. Currently we do it through iconv() and only ASCII
characters are compared case-insensitively.
Index: Makefile.am
===================================================================
RCS file: /home/cvs/dovecot/src/imap/Makefile.am,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Makefile.am 29 Oct 2002 06:29:17 -0000 1.4
+++ Makefile.am 3 Nov 2002 08:39:43 -0000 1.5
@@ -17,6 +17,7 @@
../lib-storage/subscription-file/libstorage_subscription_file.a \
../lib-imap/libimap.a \
../lib-mail/libmail.a \
+ ../lib-charset/libcharset.a \
../lib/liblib.a
cmds = \
Index: cmd-search.c
===================================================================
RCS file: /home/cvs/dovecot/src/imap/cmd-search.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- cmd-search.c 19 Oct 2002 14:51:59 -0000 1.4
+++ cmd-search.c 3 Nov 2002 08:39:43 -0000 1.5
@@ -10,7 +10,7 @@
ImapArg *args;
int args_count;
Pool pool;
- const char *error;
+ const char *error, *charset;
args_count = imap_parser_read_args(client->parser, 0, 0, &args);
if (args_count == -2)
@@ -25,6 +25,23 @@
if (!client_verify_open_mailbox(client))
return TRUE;
+ if (args->type == IMAP_ARG_ATOM &&
+ strcasecmp(args->data.str, "CHARSET") == 0) {
+ /* CHARSET specified */
+ args++;
+ if (args->type != IMAP_ARG_ATOM &&
+ args->type != IMAP_ARG_STRING) {
+ client_send_command_error(client,
+ "Invalid charset argument.");
+ return TRUE;
+ }
+
+ charset = args->data.str;
+ args++;
+ } else {
+ charset = NULL;
+ }
+
pool = pool_create("MailSearchArgs", 2048, FALSE);
sargs = mail_search_args_build(pool, args, &error);
@@ -32,7 +49,7 @@
/* error in search arguments */
client_send_tagline(client, t_strconcat("NO ", error, NULL));
} else {
- if (client->mailbox->search(client->mailbox, sargs,
+ if (client->mailbox->search(client->mailbox, charset, sargs,
client->outbuf, client->cmd_uid)) {
/* NOTE: syncing isn't allowed here */
client_sync_without_expunges(client);
- Previous message: [dovecot-cvs] dovecot/src Makefile.am,1.1.1.1,1.2
- Next message: [dovecot-cvs] dovecot/src/lib-charset .cvsignore,NONE,1.1 Makefile.am,NONE,1.1 charset-ascii.c,NONE,1.1 charset-iconv.c,NONE,1.1 charset-utf8.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list