aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/message.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/message.cc')
-rw-r--r--lib/message.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/message.cc b/lib/message.cc
index 39036ecc..b8128505 100644
--- a/lib/message.cc
+++ b/lib/message.cc
@@ -868,6 +868,7 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message)
const char *filename;
char *combined_flags = talloc_strdup (message, "");
unsigned i;
+ int seen_maildir_info = 0;
for (filenames = notmuch_message_get_filenames (message);
notmuch_filenames_valid (filenames);
@@ -879,11 +880,18 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message)
if (! flags)
continue;
+ seen_maildir_info = 1;
flags += 3;
combined_flags = talloc_strdup_append (combined_flags, flags);
}
+ /* If none of the filenames have any maildir info field (not even
+ * an empty info with no flags set) then there's no information to
+ * go on, so do nothing. */
+ if (! seen_maildir_info)
+ return NOTMUCH_STATUS_SUCCESS;
+
status = notmuch_message_freeze (message);
if (status)
return status;