diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib-storage/mail-thread.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib-storage/mail-thread.c b/src/lib-storage/mail-thread.c new file mode 100644 index 0000000..9426d68 --- /dev/null +++ b/src/lib-storage/mail-thread.c @@ -0,0 +1,37 @@ +/* Copyright (c) 2009-2018 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "mail-thread.h" + +struct { + const char *name; + enum mail_thread_type type; +} mail_thread_type_strings[] = { + { "REFERENCES", MAIL_THREAD_REFERENCES }, + { "REFS", MAIL_THREAD_REFS }, + { "ORDEREDSUBJECT", MAIL_THREAD_ORDEREDSUBJECT } +}; + +bool mail_thread_type_parse(const char *str, enum mail_thread_type *type_r) +{ + unsigned int i; + + for (i = 0; i < N_ELEMENTS(mail_thread_type_strings); i++) { + if (strcasecmp(str, mail_thread_type_strings[i].name) == 0) { + *type_r = mail_thread_type_strings[i].type; + return TRUE; + } + } + return FALSE; +} + +const char *mail_thread_type_to_str(enum mail_thread_type type) +{ + unsigned int i; + + for (i = 0; i < N_ELEMENTS(mail_thread_type_strings); i++) { + if (mail_thread_type_strings[i].type == type) + return mail_thread_type_strings[i].name; + } + i_panic("Unknown mail_thread_type %d", type); +} |