diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-24 21:52:48 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-24 21:52:48 -0700 |
commit | e37b7cc2da75c9a43e31c1fa6d29f1177445c1d8 (patch) | |
tree | 0ace6d81e92b24c1dc597bb427c6d55c820c704c /database.cc | |
parent | e1e1f0cb3bf020cb8d8af219c58187abbd33ae23 (diff) |
Move the prefix-string arrays back into database.cc from message.cc
Yes, I'm being wishy-washy here, moving code back and forth. But
this is where these really do belong.
Diffstat (limited to 'database.cc')
-rw-r--r-- | database.cc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/database.cc b/database.cc index 712ab260..7a3019e1 100644 --- a/database.cc +++ b/database.cc @@ -28,6 +28,63 @@ using namespace std; +#define ARRAY_SIZE(arr) (sizeof (arr) / sizeof (arr[0])) + +/* These prefix values are specifically chosen to be compatible + * with sup, (http://sup.rubyforge.org), written by + * William Morgan <wmorgan-sup@masanjin.net>, and released + * under the GNU GPL v2. + */ + +typedef struct { + const char *name; + const char *prefix; +} prefix_t; + +prefix_t NORMAL_PREFIX[] = { + { "subject", "S" }, + { "body", "B" }, + { "from_name", "FN" }, + { "to_name", "TN" }, + { "name", "N" }, + { "attachment", "A" } +}; + +prefix_t BOOLEAN_PREFIX[] = { + { "type", "K" }, + { "from_email", "FE" }, + { "to_email", "TE" }, + { "email", "E" }, + { "date", "D" }, + { "label", "L" }, + { "tag", "L" }, + { "source_id", "I" }, + { "attachment_extension", "O" }, + { "msgid", "Q" }, + { "thread", "H" }, + { "ref", "R" }, + { "timestamp", "KTS" }, +}; + +const char * +_find_prefix (const char *name) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE (NORMAL_PREFIX); i++) + if (strcmp (name, NORMAL_PREFIX[i].name) == 0) + return NORMAL_PREFIX[i].prefix; + + for (i = 0; i < ARRAY_SIZE (BOOLEAN_PREFIX); i++) + if (strcmp (name, BOOLEAN_PREFIX[i].name) == 0) + return BOOLEAN_PREFIX[i].prefix; + + fprintf (stderr, "Internal error: No prefix exists for '%s'\n", name); + exit (1); + + return ""; +} + const char * notmuch_status_to_string (notmuch_status_t status) { |