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)
time_t date;
const char *relative_date;
const char *subject;
+ const char *tags;
from = notmuch_message_get_header (message, "from");
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
return ret;
}
-static int
-_message_is_unread (notmuch_message_t *message)
-{
- notmuch_tags_t *tags;
- const char *tag;
-
- for (tags = notmuch_message_get_tags (message);
- notmuch_tags_has_more (tags);
- notmuch_tags_advance (tags))
- {
- tag = notmuch_tags_get (tags);
-
- if (strcmp (tag, "unread") == 0)
- return 1;
- }
-
- return 0;
-}
-
static int
show_command (void *ctx, unused (int argc), unused (char *argv[]))
{
notmuch_messages_t *messages;
notmuch_message_t *message;
int ret = 0;
- int unread;
const char *headers[] = {
"Subject", "From", "To", "Cc", "Bcc", "Date"
notmuch_messages_advance (messages))
{
message = notmuch_messages_get (messages);
- unread = _message_is_unread (message);
- printf ("\fmessage{ ID: %s %s\n",
- notmuch_message_get_message_id (message),
- unread ? "unread" : "");
+ printf ("\fmessage{ ID: %s\n",
+ notmuch_message_get_message_id (message));
printf ("\fheader{\n");