summaryrefslogtreecommitdiffstats
path: root/maildir/testmaildirsearch.c
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-19 16:39:41 -0400
committerSam Varshavchik2013-08-25 14:43:51 -0400
commit9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch)
tree7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildir/testmaildirsearch.c
parenta9520698b770168d1f33d6301463bb70a19655ec (diff)
downloadcourier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2
Initial checkin
Imported from subversion report, converted to git. Updated all paths in scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildir/testmaildirsearch.c')
-rw-r--r--maildir/testmaildirsearch.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/maildir/testmaildirsearch.c b/maildir/testmaildirsearch.c
new file mode 100644
index 0000000..7b16f06
--- /dev/null
+++ b/maildir/testmaildirsearch.c
@@ -0,0 +1,74 @@
+/*
+** Copyright 2011 Double Precision, Inc.
+** See COPYING for distribution information.
+*/
+
+#include "maildirsearch.h"
+
+
+static int testmaildirsearch(const char *chset, const char *needle,
+ const char *haystack)
+{
+ struct maildir_searchengine se;
+ unicode_char *ucptr;
+ size_t ucsize;
+ size_t i;
+ libmail_u_convert_handle_t h=libmail_u_convert_tou_init(chset, &ucptr,
+ &ucsize, 1);
+
+ if (h == NULL)
+ {
+ perror("libmail_u_convert_tou_init");
+ return 1;
+ }
+
+ if (libmail_u_convert(h, haystack, strlen(haystack)))
+ {
+ libmail_u_convert_deinit(h, NULL);
+ perror("libmail_u_convert_tou");
+ return 1;
+ }
+
+ if (libmail_u_convert_deinit(h, NULL))
+ {
+ perror("libmail_u_convert_deinit");
+ return 1;
+ }
+
+ maildir_search_init(&se);
+
+ if (maildir_search_start_str_chset(&se, needle, chset))
+ {
+ perror("maildir_search_start_str_chset");
+ maildir_search_destroy(&se);
+ free(ucptr);
+ return 1;
+ }
+ maildir_search_reset(&se);
+
+ for (i=0; ucptr[i]; ++i)
+ {
+ maildir_search_step_unicode_lc(&se, ucptr[i]);
+ if (maildir_search_found(&se))
+ {
+ free(ucptr);
+ maildir_search_destroy(&se);
+ return 0;
+ }
+ }
+ free(ucptr);
+ maildir_search_destroy(&se);
+ return 2;
+}
+
+int main(int argc, char **argv)
+{
+ if (argc < 4)
+ {
+ fprintf(stderr, "Invalid args\n");
+ return (1);
+ }
+
+ exit(testmaildirsearch(argv[1], argv[2], argv[3]));
+ return (0);
+}