]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-restore.c
tag-utils: use the tag_opt_list_t as talloc context, if possible.
[notmuch] / notmuch-restore.c
index 670d01f92a0e1f302bc0ce3e5776e77d063fd7d8..ac913754d26b4e3130fe4ba2362fcd9dd4e9d30d 100644 (file)
@@ -25,6 +25,9 @@
 
 static regex_t regex;
 
+/* Non-zero return indicates an error in retrieving the message,
+ * or in applying the tags.
+ */
 static int
 tag_message (unused (void *ctx),
             notmuch_database_t *notmuch,
@@ -38,7 +41,7 @@ tag_message (unused (void *ctx),
 
     status = notmuch_database_find_message (notmuch, message_id, &message);
     if (status || message == NULL) {
-       fprintf (stderr, "Warning: Cannot apply tags to %smessage: %s\n",
+       fprintf (stderr, "Warning: cannot apply tags to %smessage: %s\n",
                 message ? "" : "missing ", message_id);
        if (status)
            fprintf (stderr, "%s\n", notmuch_status_to_string (status));
@@ -48,7 +51,7 @@ tag_message (unused (void *ctx),
     /* In order to detect missing messages, this check/optimization is
      * intentionally done *after* first finding the message. */
     if ((flags & TAG_FLAG_REMOVE_ALL) || tag_op_list_size (tag_ops))
-       tag_op_list_apply (message, tag_ops, flags);
+       ret = tag_op_list_apply (message, tag_ops, flags);
 
     notmuch_message_destroy (message);
 
@@ -102,7 +105,7 @@ parse_sup_line (void *ctx, char *line,
            tok_len++;
        }
 
-       if (tag_op_list_append (ctx, tag_ops, tok, FALSE))
+       if (tag_op_list_append (tag_ops, tok, FALSE))
            return -1;
     }
 
@@ -213,7 +216,7 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[])
 
            if (ret == 0) {
                if (strncmp ("id:", query_string, 3) != 0) {
-                   fprintf (stderr, "Unsupported query: %s\n", query_string);
+                   fprintf (stderr, "Warning: unsupported query: %s\n", query_string);
                    continue;
                }
                /* delete id: from front of string; tag_message
@@ -231,8 +234,12 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[])
        if (ret > 0)
            continue;
 
-       if (ret < 0 || tag_message (ctx, notmuch, query_string,
-                                   tag_ops, flags))
+       if (ret < 0)
+           break;
+
+       ret = tag_message (ctx, notmuch, query_string,
+                          tag_ops, flags);
+       if (ret)
            break;
 
     }  while ((line_len = getline (&line, &line_size, input)) != -1);