aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.c
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-11-03 12:29:07 -0800
committerGravatar Carl Worth <cworth@cworth.org>2009-11-03 12:29:07 -0800
commit02aa1391beae37e1c4641a9543871d96afdae1bb (patch)
treed4a3c684208ed693f0b226f13accdc39cbfcbd8c /notmuch.c
parent6be03c1761b0b586f7b52bb394131e34fe7534be (diff)
notmuch show: Print tags for each message.
This is in the one-line summary so should always be visible even in our emacs client that's so eager to make things invisible.
Diffstat (limited to 'notmuch.c')
-rw-r--r--notmuch.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/notmuch.c b/notmuch.c
index 718aec9a..c607457c 100644
--- 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