]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.c
notmuch show: Remove custom "unread" hack, (printing tag in two locations).
[notmuch] / notmuch.c
index 30b3bbac9d9ed53dc9404e6f8635f9c091f24f23..3b4cd6f13a40f5c586cd1f2e85e16e5ab833e29d 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -880,6 +880,32 @@ search_command (void *ctx, int argc, char *argv[])
     return ret;
 }
 
+static const char *
+_get_tags_as_string (void *ctx, notmuch_message_t *message)
+{
+    notmuch_tags_t *tags;
+    int first = 1;
+    const char *tag;
+    char *result;
+
+    result = talloc_strdup (ctx, "");
+    if (result == NULL)
+       return NULL;
+
+    for (tags = notmuch_message_get_tags (message);
+        notmuch_tags_has_more (tags);
+        notmuch_tags_advance (tags))
+    {
+       tag = notmuch_tags_get (tags);
+
+       result = talloc_asprintf_append (result, "%s%s",
+                                        first ? "" : " ", tag);
+       first = 0;
+    }
+
+    return result;
+}
+
 /* Get a nice, single-line summary of message. */
 static const char *
 _get_one_line_summary (void *ctx, notmuch_message_t *message)
@@ -888,6 +914,7 @@ _get_one_line_summary (void *ctx, notmuch_message_t *message)
     time_t date;
     const char *relative_date;
     const char *subject;
+    const char *tags;
 
     from = notmuch_message_get_header (message, "from");
 
@@ -896,8 +923,10 @@ _get_one_line_summary (void *ctx, notmuch_message_t *message)
 
     subject = notmuch_message_get_header (message, "subject");
 
-    return talloc_asprintf (ctx, "%s (%s) %s",
-                           from, relative_date, subject);
+    tags = _get_tags_as_string (ctx, message);
+
+    return talloc_asprintf (ctx, "%s (%s) %s (%s)",
+                           from, relative_date, subject, tags);
 }
 
 static void
@@ -952,18 +981,19 @@ show_message_part (GMimeObject *part, int *part_count)
        const char *filename = g_mime_part_get_filename (GMIME_PART (part));
        content_type = g_mime_object_get_content_type (GMIME_OBJECT (part));
 
-       printf ("%%attachment{ ID: %d, Content-type: %s, ",
+       printf ("\fattachment{ ID: %d, Content-type: %s\n",
                *part_count,
                g_mime_content_type_to_string (content_type));
-       printf ("Filename: %s ", filename);
-       printf ("%%attachment}\n");
+       printf ("Attachment: %s (%s)\n", filename,
+               g_mime_content_type_to_string (content_type));
+       printf ("\fattachment}\n");
 
        return;
     }
 
     content_type = g_mime_object_get_content_type (GMIME_OBJECT (part));
 
-    printf ("%%part{ ID: %d, Content-type: %s\n",
+    printf ("\fpart{ ID: %d, Content-type: %s\n",
            *part_count,
            g_mime_content_type_to_string (content_type));
 
@@ -977,8 +1007,13 @@ show_message_part (GMimeObject *part, int *part_count)
        if (wrapper)
            g_mime_data_wrapper_write_to_stream (wrapper, stream);
     }
+    else
+    {
+       printf ("Non-text part: %s\n",
+               g_mime_content_type_to_string (content_type));
+    }
 
-    printf ("%%part}\n");
+    printf ("\fpart}\n");
 
     g_object_unref (stream);
 }
@@ -1081,9 +1116,10 @@ show_command (void *ctx, unused (int argc), unused (char *argv[]))
     {
        message = notmuch_messages_get (messages);
 
-       printf ("%%message{\n");
+       printf ("\fmessage{ ID: %s\n",
+               notmuch_message_get_message_id (message));
 
-       printf ("%%header{\n");
+       printf ("\fheader{\n");
 
        printf ("%s\n", _get_one_line_summary (local, message));
 
@@ -1094,11 +1130,14 @@ show_command (void *ctx, unused (int argc), unused (char *argv[]))
                printf ("%s: %s\n", name, value);
        }
 
-       printf ("%%header}\n");
+       printf ("\fheader}\n");
+       printf ("\fbody{\n");
 
        show_message_body (notmuch_message_get_filename (message));
 
-       printf ("%%message}\n");
+       printf ("\fbody}\n");
+
+       printf ("\fmessage}\n");
 
        notmuch_message_destroy (message);
     }