X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fmessage.cc;fp=lib%2Fmessage.cc;h=5c9b58b22986cd9fff286e3493dffedc2ade7450;hp=9e1005a3058c8330334525943d03e8e7bee896a5;hb=2b62ca2e3b786beca8d89fa737bda0b49faa638d;hpb=8a3f86f2f9b53d34e001537b113628ceba20a02d diff --git a/lib/message.cc b/lib/message.cc index 9e1005a3..5c9b58b2 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -69,10 +69,10 @@ struct maildir_flag_tag { /* ASCII ordered table of Maildir flags and associated tags */ static struct maildir_flag_tag flag2tag[] = { - { 'D', "draft", false}, - { 'F', "flagged", false}, - { 'P', "passed", false}, - { 'R', "replied", false}, + { 'D', "draft", false }, + { 'F', "flagged", false }, + { 'P', "passed", false }, + { 'R', "replied", false }, { 'S', "unread", true } }; @@ -274,8 +274,8 @@ _notmuch_message_create_for_message_id (notmuch_database_t *notmuch, doc_id = _notmuch_database_generate_doc_id (notmuch); } catch (const Xapian::Error &error) { - _notmuch_database_log(notmuch_message_get_database (message), "A Xapian exception occurred creating message: %s\n", - error.get_msg().c_str()); + _notmuch_database_log (notmuch_message_get_database (message), "A Xapian exception occurred creating message: %s\n", + error.get_msg ().c_str ()); notmuch->exception_reported = true; *status_ret = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION; return NULL; @@ -306,10 +306,10 @@ _notmuch_message_get_term (notmuch_message_t *message, return NULL; const std::string &term = *i; - if (strncmp (term.c_str(), prefix, prefix_len)) + if (strncmp (term.c_str (), prefix, prefix_len)) return NULL; - value = talloc_strdup (message, term.c_str() + prefix_len); + value = talloc_strdup (message, term.c_str () + prefix_len); #if DEBUG_DATABASE_SANITY i++; @@ -350,32 +350,32 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) return; const char *thread_prefix = _find_prefix ("thread"), - *tag_prefix = _find_prefix ("tag"), - *id_prefix = _find_prefix ("id"), - *type_prefix = _find_prefix ("type"), - *filename_prefix = _find_prefix ("file-direntry"), - *property_prefix = _find_prefix ("property"), - *reference_prefix = _find_prefix ("reference"), - *replyto_prefix = _find_prefix ("replyto"); + *tag_prefix = _find_prefix ("tag"), + *id_prefix = _find_prefix ("id"), + *type_prefix = _find_prefix ("type"), + *filename_prefix = _find_prefix ("file-direntry"), + *property_prefix = _find_prefix ("property"), + *reference_prefix = _find_prefix ("reference"), + *replyto_prefix = _find_prefix ("replyto"); /* We do this all in a single pass because Xapian decompresses the * term list every time you iterate over it. Thus, while this is * slightly more costly than looking up individual fields if only * one field of the message object is actually used, it's a huge * win as more fields are used. */ - for (int count=0; count < 3; count++) { + for (int count = 0; count < 3; count++) { try { i = message->doc.termlist_begin (); end = message->doc.termlist_end (); /* Get thread */ - if (!message->thread_id) + if (! message->thread_id) message->thread_id = _notmuch_message_get_term (message, i, end, thread_prefix); /* Get tags */ assert (strcmp (thread_prefix, tag_prefix) < 0); - if (!message->tag_list) { + if (! message->tag_list) { message->tag_list = _notmuch_database_get_terms_with_prefix (message, i, end, tag_prefix); @@ -384,7 +384,7 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) /* Get id */ assert (strcmp (tag_prefix, id_prefix) < 0); - if (!message->message_id) + if (! message->message_id) message->message_id = _notmuch_message_get_term (message, i, end, id_prefix); @@ -407,7 +407,7 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) * expand them to full file names when needed in * _notmuch_message_ensure_filename_list. */ assert (strcmp (type_prefix, filename_prefix) < 0); - if (!message->filename_term_list && !message->filename_list) + if (! message->filename_term_list && ! message->filename_list) message->filename_term_list = _notmuch_database_get_terms_with_prefix (message, i, end, filename_prefix); @@ -415,14 +415,14 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) /* Get property terms. Mimic the setup with filenames above */ assert (strcmp (filename_prefix, property_prefix) < 0); - if (!message->property_map && !message->property_term_list) + if (! message->property_map && ! message->property_term_list) message->property_term_list = _notmuch_database_get_terms_with_prefix (message, i, end, - property_prefix); + property_prefix); /* get references */ assert (strcmp (property_prefix, reference_prefix) < 0); - if (!message->reference_list) { + if (! message->reference_list) { message->reference_list = _notmuch_database_get_terms_with_prefix (message, i, end, reference_prefix); @@ -430,14 +430,14 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) /* Get reply to */ assert (strcmp (property_prefix, replyto_prefix) < 0); - if (!message->in_reply_to) + if (! message->in_reply_to) message->in_reply_to = _notmuch_message_get_term (message, i, end, replyto_prefix); /* It's perfectly valid for a message to have no In-Reply-To * header. For these cases, we return an empty string. */ - if (!message->in_reply_to) + if (! message->in_reply_to) message->in_reply_to = talloc_strdup (message, ""); /* all the way without an exception */ @@ -449,7 +449,7 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field) notmuch_status_to_string (status)); } catch (const Xapian::Error &error) { INTERNAL_ERROR ("A Xapian exception occurred fetching message metadata: %s\n", - error.get_msg().c_str()); + error.get_msg ().c_str ()); } } message->last_view = message->notmuch->view; @@ -508,7 +508,7 @@ const char * notmuch_message_get_message_id (notmuch_message_t *message) { _notmuch_message_ensure_metadata (message, message->message_id); - if (!message->message_id) + if (! message->message_id) INTERNAL_ERROR ("Message with document ID of %u has no message ID.\n", message->doc_id); return message->message_id; @@ -553,12 +553,12 @@ notmuch_message_get_header (notmuch_message_t *message, const char *header) * it could just mean we didn't record the header. */ if ((message->notmuch->features & NOTMUCH_FEATURE_FROM_SUBJECT_ID_VALUES) || - ! value.empty()) + ! value.empty ()) return talloc_strdup (message, value.c_str ()); } catch (Xapian::Error &error) { - _notmuch_database_log(notmuch_message_get_database (message), "A Xapian exception occurred when reading header: %s\n", - error.get_msg().c_str()); + _notmuch_database_log (notmuch_message_get_database (message), "A Xapian exception occurred when reading header: %s\n", + error.get_msg ().c_str ()); message->notmuch->exception_reported = true; return NULL; } @@ -590,7 +590,7 @@ const char * notmuch_message_get_thread_id (notmuch_message_t *message) { _notmuch_message_ensure_metadata (message, message->thread_id); - if (!message->thread_id) + if (! message->thread_id) INTERNAL_ERROR ("Message with document ID of %u has no thread ID.\n", message->doc_id); return message->thread_id; @@ -604,7 +604,8 @@ _notmuch_message_add_reply (notmuch_message_t *message, } size_t -_notmuch_message_get_thread_depth (notmuch_message_t *message) { +_notmuch_message_get_thread_depth (notmuch_message_t *message) +{ return message->thread_depth; } @@ -618,7 +619,7 @@ _notmuch_message_label_depths (notmuch_message_t *message, notmuch_messages_valid (messages); notmuch_messages_move_to_next (messages)) { notmuch_message_t *child = notmuch_messages_get (messages); - _notmuch_message_label_depths (child, depth+1); + _notmuch_message_label_depths (child, depth + 1); } } @@ -730,7 +731,7 @@ _notmuch_message_remove_indexed_terms (notmuch_message_t *message) type_prefix = _find_prefix ("type"); /* Make sure we have the data to restore to Xapian*/ - _notmuch_message_ensure_metadata (message,NULL); + _notmuch_message_ensure_metadata (message, NULL); /* Empirically, it turns out to be faster to remove all the terms, * and add back the ones we want. */ @@ -754,7 +755,7 @@ _notmuch_message_remove_indexed_terms (notmuch_message_t *message) STRNCMP_LITERAL (tag, "signed") != 0 && STRNCMP_LITERAL (tag, "attachment") != 0) { std::string term = tag_prefix + tag; - message->doc.add_term(term); + message->doc.add_term (term); } } @@ -764,10 +765,10 @@ _notmuch_message_remove_indexed_terms (notmuch_message_t *message) for (list = notmuch_message_get_properties (message, "", false); notmuch_message_properties_valid (list); notmuch_message_properties_move_to_next (list)) { std::string term = property_prefix + - notmuch_message_properties_key(list) + "=" + - notmuch_message_properties_value(list); + notmuch_message_properties_key (list) + "=" + + notmuch_message_properties_value (list); - message->doc.add_term(term); + message->doc.add_term (term); } notmuch_message_properties_destroy (list); @@ -777,7 +778,8 @@ _notmuch_message_remove_indexed_terms (notmuch_message_t *message) /* Return true if p points at "new" or "cur". */ -static bool is_maildir (const char *p) +static bool +is_maildir (const char *p) { return strcmp (p, "cur") == 0 || strcmp (p, "new") == 0; } @@ -972,7 +974,7 @@ _notmuch_message_remove_filename (notmuch_message_t *message, status = _notmuch_database_filename_to_direntry ( local, message->notmuch, filename, NOTMUCH_FIND_LOOKUP, &direntry); - if (status || !direntry) + if (status || ! direntry) return status; /* Unlink this file from its parent directory. */ @@ -1041,7 +1043,7 @@ _notmuch_message_ensure_filename_list (notmuch_message_t *message) message->filename_list = _notmuch_string_list_create (message); node = message->filename_term_list->head; - if (!node) { + if (! node) { /* A message document created by an old version of notmuch * (prior to rename support) will have the filename in the * data of the document rather than as a file-direntry term. @@ -1108,8 +1110,7 @@ notmuch_message_get_filename (notmuch_message_t *message) return NULL; if (message->filename_list->head == NULL || - message->filename_list->head->string == NULL) - { + message->filename_list->head->string == NULL) { INTERNAL_ERROR ("message with no filename"); } @@ -1162,8 +1163,8 @@ notmuch_message_get_date (notmuch_message_t *message) try { value = message->doc.get_value (NOTMUCH_VALUE_TIMESTAMP); } catch (Xapian::Error &error) { - _notmuch_database_log(notmuch_message_get_database (message), "A Xapian exception occurred when reading date: %s\n", - error.get_msg().c_str()); + _notmuch_database_log (notmuch_message_get_database (message), "A Xapian exception occurred when reading date: %s\n", + error.get_msg ().c_str ()); message->notmuch->exception_reported = true; return 0; } @@ -1188,7 +1189,7 @@ notmuch_message_get_tags (notmuch_message_t *message) * possible to modify the message tags (which talloc_unlink's the * current list from the message) while still iterating because * the iterator will keep the current list alive. */ - if (!talloc_reference (message, message->tag_list)) + if (! talloc_reference (message, message->tag_list)) return NULL; return tags; @@ -1202,11 +1203,11 @@ _notmuch_message_get_author (notmuch_message_t *message) void _notmuch_message_set_author (notmuch_message_t *message, - const char *author) + const char *author) { if (message->author) - talloc_free(message->author); - message->author = talloc_strdup(message, author); + talloc_free (message->author); + message->author = talloc_strdup (message, author); return; } @@ -1339,8 +1340,8 @@ _notmuch_message_delete (notmuch_message_t *message) _notmuch_message_sync (ghost); } else if (private_status == NOTMUCH_PRIVATE_STATUS_SUCCESS) { /* this is deeply weird, and we should not have gotten - into this state. is there a better error message to - return here? */ + * into this state. is there a better error message to + * return here? */ status = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID; } @@ -1358,8 +1359,8 @@ _notmuch_message_delete (notmuch_message_t *message) message = notmuch_messages_get (messages); status = _notmuch_message_delete (message); if (status) /* we'll report the last failure we see; - * if there is more than one failure, we - * forget about previous ones */ + * if there is more than one failure, we + * forget about previous ones */ last_error = status; notmuch_message_destroy (message); notmuch_messages_move_to_next (messages); @@ -1535,7 +1536,7 @@ _notmuch_message_has_term (notmuch_message_t *message, Xapian::TermIterator i = message->doc.termlist_begin (); i.skip_to (term); if (i != message->doc.termlist_end () && - !strcmp ((*i).c_str (), term)) + ! strcmp ((*i).c_str (), term)) out = true; } catch (Xapian::Error &error) { status = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION; @@ -1635,8 +1636,7 @@ _filename_is_in_maildir (const char *filename) dir = slash + 1; if (STRNCMP_LITERAL (dir, "cur/") == 0 || - STRNCMP_LITERAL (dir, "new/") == 0) - { + STRNCMP_LITERAL (dir, "new/") == 0) { return dir; } @@ -1661,8 +1661,7 @@ _ensure_maildir_flags (notmuch_message_t *message, bool force) for (filenames = notmuch_message_get_filenames (message); notmuch_filenames_valid (filenames); - notmuch_filenames_move_to_next (filenames)) - { + notmuch_filenames_move_to_next (filenames)) { filename = notmuch_filenames_get (filenames); dir = _filename_is_in_maildir (filename); @@ -1712,11 +1711,10 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message) if (status) return status; - for (i = 0; i < ARRAY_SIZE(flag2tag); i++) { + for (i = 0; i < ARRAY_SIZE (flag2tag); i++) { if ((strchr (message->maildir_flags, flag2tag[i].flag) != NULL) ^ - flag2tag[i].inverse) - { + flag2tag[i].inverse) { status = notmuch_message_add_tag (message, flag2tag[i].tag); } else { status = notmuch_message_remove_tag (message, flag2tag[i].tag); @@ -1751,8 +1749,7 @@ _get_maildir_flag_actions (notmuch_message_t *message, /* First, find flags for all set tags. */ for (tags = notmuch_message_get_tags (message); notmuch_tags_valid (tags); - notmuch_tags_move_to_next (tags)) - { + notmuch_tags_move_to_next (tags)) { tag = notmuch_tags_get (tags); for (i = 0; i < ARRAY_SIZE (flag2tag); i++) { @@ -1802,7 +1799,7 @@ _get_maildir_flag_actions (notmuch_message_t *message, * non-ASCII ordering of flags), this function will return NULL * (meaning that renaming would not be safe and should not occur). */ -static char* +static char * _new_maildir_filename (void *ctx, const char *filename, const char *flags_to_set, @@ -1822,13 +1819,12 @@ _new_maildir_filename (void *ctx, info = strstr (filename, ":2,"); if (info == NULL) { - info = filename + strlen(filename); + info = filename + strlen (filename); } else { /* Loop through existing flags in filename. */ for (flags = info + 3, last_flag = 0; *flags; - last_flag = flag, flags++) - { + last_flag = flag, flags++) { flag = *flags; /* Original flags not in ASCII order. Abort. */ @@ -1836,7 +1832,7 @@ _new_maildir_filename (void *ctx, return NULL; /* Non-ASCII flag. Abort. */ - if (flag > sizeof(flag_map) - 1) + if (flag > sizeof (flag_map) - 1) return NULL; /* Repeated flag value. Abort. */ @@ -1870,7 +1866,7 @@ _new_maildir_filename (void *ctx, /* Messages in new/ without maildir info can be kept in new/ if no * flags have changed. */ dir = (char *) _filename_is_in_maildir (filename); - if (dir && STRNCMP_LITERAL (dir, "new/") == 0 && !*info && !flags_changed) + if (dir && STRNCMP_LITERAL (dir, "new/") == 0 && ! *info && ! flags_changed) return talloc_strdup (ctx, filename); filename_new = (char *) talloc_size (ctx, @@ -1885,8 +1881,7 @@ _new_maildir_filename (void *ctx, strcat (filename_new, ":2,"); s = filename_new + strlen (filename_new); - for (i = 0; i < sizeof (flag_map); i++) - { + for (i = 0; i < sizeof (flag_map); i++) { if (flag_map[i]) { *s = i; s++; @@ -1915,8 +1910,7 @@ notmuch_message_tags_to_maildir_flags (notmuch_message_t *message) for (filenames = notmuch_message_get_filenames (message); notmuch_filenames_valid (filenames); - notmuch_filenames_move_to_next (filenames)) - { + notmuch_filenames_move_to_next (filenames)) { filename = notmuch_filenames_get (filenames); if (! _filename_is_in_maildir (filename)) @@ -1978,8 +1972,7 @@ notmuch_message_remove_all_tags (notmuch_message_t *message) for (tags = notmuch_message_get_tags (message); notmuch_tags_valid (tags); - notmuch_tags_move_to_next (tags)) - { + notmuch_tags_move_to_next (tags)) { tag = notmuch_tags_get (tags); private_status = _notmuch_message_remove_term (message, "tag", tag); @@ -2057,8 +2050,8 @@ _notmuch_message_ensure_property_map (notmuch_message_t *message) const char *key; char *value; - value = strchr(node->string, '='); - if (!value) + value = strchr (node->string, '='); + if (! value) INTERNAL_ERROR ("malformed property term"); *value = '\0'; @@ -2105,7 +2098,7 @@ notmuch_message_reindex (notmuch_message_t *message, /* Save in case we need to delete message */ orig_thread_id = notmuch_message_get_thread_id (message); - if (!orig_thread_id) { + if (! orig_thread_id) { /* XXX TODO: make up new error return? */ INTERNAL_ERROR ("message without thread-id"); } @@ -2123,7 +2116,7 @@ notmuch_message_reindex (notmuch_message_t *message, private_status = _notmuch_message_remove_indexed_terms (message); if (private_status) { - ret = COERCE_STATUS(private_status, "error removing terms"); + ret = COERCE_STATUS (private_status, "error removing terms"); goto DONE; } @@ -2194,7 +2187,7 @@ notmuch_message_reindex (notmuch_message_t *message, _notmuch_message_sync (message); } - DONE: + DONE: if (message_file) _notmuch_message_file_close (message_file);