]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-show.c
completion: add bash completion for query: and property:
[notmuch] / notmuch-show.c
index e05480899b33e9cfbc3809f37e9e8c2b6cc8b3de..ab4ea1c2bdc1c6b1ec0f58e49d1e13af788b859a 100644 (file)
@@ -13,7 +13,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see http://www.gnu.org/licenses/ .
+ * along with this program.  If not, see https://www.gnu.org/licenses/ .
  *
  * Author: Carl Worth <cworth@cworth.org>
  */
@@ -133,7 +133,20 @@ format_message_sprinter (sprinter_t *sp, notmuch_message_t *message)
     sp->boolean (sp, notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_EXCLUDED));
 
     sp->map_key (sp, "filename");
-    sp->string (sp, notmuch_message_get_filename (message));
+    if (notmuch_format_version >= 3) {
+       notmuch_filenames_t *filenames;
+
+       sp->begin_list (sp);
+       for (filenames = notmuch_message_get_filenames (message);
+            notmuch_filenames_valid (filenames);
+            notmuch_filenames_move_to_next (filenames)) {
+           sp->string (sp, notmuch_filenames_get (filenames));
+       }
+       notmuch_filenames_destroy (filenames);
+       sp->end (sp);
+    } else {
+       sp->string (sp, notmuch_message_get_filename (message));
+    }
 
     sp->map_key (sp, "timestamp");
     date = notmuch_message_get_date (message);
@@ -456,7 +469,8 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node,
            g_mime_part_get_filename (GMIME_PART (node->part)) : NULL;
 
        if (disposition &&
-           strcmp (disposition->disposition, GMIME_DISPOSITION_ATTACHMENT) == 0)
+           strcasecmp (g_mime_content_disposition_get_disposition (disposition),
+                       GMIME_DISPOSITION_ATTACHMENT) == 0)
            part_type = "attachment";
        else
            part_type = "part";
@@ -896,9 +910,14 @@ do_show_single (void *ctx,
     notmuch_messages_t *messages;
     notmuch_message_t *message;
     notmuch_status_t status;
+    unsigned int count;
+
+    status = notmuch_query_count_messages_st (query, &count);
+    if (print_status_query ("notmuch show", query, status))
+       return 1;
 
-    if (notmuch_query_count_messages (query) != 1) {
-       fprintf (stderr, "Error: search term did not match precisely one message.\n");
+    if (count != 1) {
+       fprintf (stderr, "Error: search term did not match precisely one message (matched %d messages).\n", count);
        return 1;
     }