summaryrefslogtreecommitdiffstats
path: root/src/lib-storage/mail-thread.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib-storage/mail-thread.c37
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);
+}