diff --git a/notmuch.c b/notmuch.c index e1409209..9b841b3a 100644 --- a/notmuch.c +++ b/notmuch.c @@ -515,9 +515,8 @@ restore_command (int argc, char *argv[]) message = notmuch_database_find_message (notmuch, message_id); if (message == NULL) { - fprintf (stderr, "Warning: Cannot apply tags to missing message: %s\n", + fprintf (stderr, "Warning: Cannot apply tags to missing message: %s (", message_id); - goto NEXT_LINE; } next = tags; @@ -525,19 +524,25 @@ restore_command (int argc, char *argv[]) tag = strsep (&next, " "); if (*tag == '\0') continue; - status = notmuch_message_add_tag (message, tag); - if (status) { - fprintf (stderr, - "Error applying tag %s to message %s:\n", - tag, message_id); - fprintf (stderr, "%s\n", - notmuch_status_to_string (status)); + if (message) { + status = notmuch_message_add_tag (message, tag); + if (status) { + fprintf (stderr, + "Error applying tag %s to message %s:\n", + tag, message_id); + fprintf (stderr, "%s\n", + notmuch_status_to_string (status)); + } + } else { + fprintf (stderr, "%s ", tag); } } - notmuch_message_destroy (message); + if (message) + notmuch_message_destroy (message); + else + fprintf (stderr, ")\n"); } - NEXT_LINE: free (message_id); free (tags); }