diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 |
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildir/testmaildirsearch.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-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.c | 74 |
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); +} |
