mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-01 15:14:16 +01:00
lib: Indicate if there are more filenames after removal.
Make _notmuch_message_remove_filename return NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID if the message has more filenames and fix callers to handle this.
This commit is contained in:
parent
e59cc0031f
commit
e4379c43e2
1 changed files with 8 additions and 1 deletions
|
@ -501,6 +501,9 @@ _notmuch_message_add_filename (notmuch_message_t *message,
|
||||||
* This change will not be reflected in the database until the next
|
* This change will not be reflected in the database until the next
|
||||||
* call to _notmuch_message_sync.
|
* call to _notmuch_message_sync.
|
||||||
*
|
*
|
||||||
|
* If this message still has other filenames, returns
|
||||||
|
* NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID.
|
||||||
|
*
|
||||||
* Note: This function does not remove a document from the database,
|
* Note: This function does not remove a document from the database,
|
||||||
* even if the specified filename is the only filename for this
|
* even if the specified filename is the only filename for this
|
||||||
* message. For that functionality, see
|
* message. For that functionality, see
|
||||||
|
@ -590,6 +593,9 @@ _notmuch_message_remove_filename (notmuch_message_t *message,
|
||||||
if (strncmp ((*i).c_str (), direntry_prefix, direntry_prefix_len))
|
if (strncmp ((*i).c_str (), direntry_prefix, direntry_prefix_len))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* Indicate that there are filenames remaining. */
|
||||||
|
status = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID;
|
||||||
|
|
||||||
direntry = (*i).c_str ();
|
direntry = (*i).c_str ();
|
||||||
direntry += direntry_prefix_len;
|
direntry += direntry_prefix_len;
|
||||||
|
|
||||||
|
@ -1282,7 +1288,8 @@ notmuch_message_tags_to_maildir_flags (notmuch_message_t *message)
|
||||||
new_status = _notmuch_message_remove_filename (message,
|
new_status = _notmuch_message_remove_filename (message,
|
||||||
filename);
|
filename);
|
||||||
/* Hold on to only the first error. */
|
/* Hold on to only the first error. */
|
||||||
if (! status && new_status) {
|
if (! status && new_status
|
||||||
|
&& new_status != NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) {
|
||||||
status = new_status;
|
status = new_status;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue