/* ** Copyright 2003 Double Precision, Inc. ** See COPYING for distribution information. */ #if HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #if HAVE_UNISTD_H #include #endif #include "maildir/maildirkeywords.h" static struct libmail_kwHashtable h; int smapflag=0; static int count_flags(struct libmail_keywordEntry *dummy1, void *dummy) { ++*(size_t *)dummy; return 0; } static struct libmail_kwMessage *msgs[3]; static const char * const flags[]={"apple", "banana", "pear", "grape"}; static int dump() { size_t cnt=0; if (libmail_kwEnumerate(&h, &count_flags, &cnt)) return -1; printf("%d flags\n", (int)cnt); for (cnt=0; cntfirstEntry; e; e=e->next) printf(" %s", keywordName(e->libmail_keywordEntryPtr)); printf("\n"); } return 0; } int main() { size_t i; libmail_kwhInit(&h); for (i=0; iu.userNum=i; } if (libmail_kwmSetName(&h, msgs[0], flags[0]) >= 0 && libmail_kwmSetName(&h, msgs[1], flags[1]) >= 0 && libmail_kwmSetName(&h, msgs[2], flags[2]) >= 0 && libmail_kwmSetName(&h, msgs[0], flags[0]) >= 0 && libmail_kwmSetName(&h, msgs[0], flags[1]) >= 0 && libmail_kwmSetName(&h, msgs[1], flags[2]) >= 0 && libmail_kwmSetName(&h, msgs[2], flags[3]) >= 0) { if (dump() == 0) { libmail_kwmClearName(msgs[2], flags[3]); libmail_kwmClearName(msgs[2], flags[3]); libmail_kwmClearName(msgs[0], flags[1]); if (dump() == 0) { if (libmail_kwmClearName(msgs[0], flags[0]) < 0 || libmail_kwmClearName(msgs[1], flags[1]) < 0 || libmail_kwmClearName(msgs[2], flags[2]) < 0 || libmail_kwmClearName(msgs[0], flags[0]) < 0 || libmail_kwmClearName(msgs[1], flags[2]) < 0 || libmail_kwhCheck(&h)) { fprintf(stderr, "kwhCheck test failed.\n"); exit(1); } for (i=0; i