notmuch show: Remove custom "unread" hack, (printing tag in two locations).
authorCarl Worth <cworth@cworth.org>
Tue, 3 Nov 2009 21:13:50 +0000 (13:13 -0800)
committerCarl Worth <cworth@cworth.org>
Tue, 3 Nov 2009 21:38:00 +0000 (13:38 -0800)
I previously had a hack that special-cased the "unread" tag and
printed it on the same line as the message ID. But now that we are
printing all tags at the end of the one-line summary we don't need
this anymore. Get rid of it, and just read "unread" from the list of
tags just like any other tag.

notmuch.c
notmuch.el

index c607457c0040d61866be19d2e8f5a8407ab05b62..3b4cd6f13a40f5c586cd1f2e85e16e5ab833e29d 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -1067,25 +1067,6 @@ show_message_body (const char *filename)
     return ret;
 }
 
     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[]))
 {
 static int
 show_command (void *ctx, unused (int argc), unused (char *argv[]))
 {
@@ -1096,7 +1077,6 @@ show_command (void *ctx, unused (int argc), unused (char *argv[]))
     notmuch_messages_t *messages;
     notmuch_message_t *message;
     int ret = 0;
     notmuch_messages_t *messages;
     notmuch_message_t *message;
     int ret = 0;
-    int unread;
 
     const char *headers[] = {
        "Subject", "From", "To", "Cc", "Bcc", "Date"
 
     const char *headers[] = {
        "Subject", "From", "To", "Cc", "Bcc", "Date"
@@ -1135,11 +1115,9 @@ show_command (void *ctx, unused (int argc), unused (char *argv[]))
         notmuch_messages_advance (messages))
     {
        message = notmuch_messages_get (messages);
         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");
 
 
        printf ("\fheader{\n");
 
index 0863c6b7af7a2f7a9d53495a3b0efc619c5fa43a..89089c53e7c40f032330a28bbc871aa7911376fa 100644 (file)
@@ -66,7 +66,7 @@
 (defvar notmuch-show-part-end-regexp         "\fpart}")
 (defvar notmuch-show-marker-regexp "\f\\(message\\|header\\|body\\|attachment\\|part\\)[{}].*$")
 
 (defvar notmuch-show-part-end-regexp         "\fpart}")
 (defvar notmuch-show-marker-regexp "\f\\(message\\|header\\|body\\|attachment\\|part\\)[{}].*$")
 
-(defvar notmuch-show-id-regexp "ID: \\([^ ]*\\)")
+(defvar notmuch-show-id-regexp "ID: \\(.*\\)$")
 (defvar notmuch-show-tags-regexp "(\\([^)]*\\))$")
 
 (defun notmuch-show-get-message-id ()
 (defvar notmuch-show-tags-regexp "(\\([^)]*\\))$")
 
 (defun notmuch-show-get-message-id ()
@@ -178,17 +178,17 @@ Before moving, also remove the \"unread\" tag from the current message."
            (goto-char end)))
       (next-line))))
 
            (goto-char end)))
       (next-line))))
 
-(defun notmuch-show-markup-body (unread)
+(defun notmuch-show-markup-body ()
   (re-search-forward notmuch-show-body-begin-regexp)
   (next-line 1)
   (beginning-of-line)
   (let ((beg (point)))
     (re-search-forward notmuch-show-body-end-regexp)
   (re-search-forward notmuch-show-body-begin-regexp)
   (next-line 1)
   (beginning-of-line)
   (let ((beg (point)))
     (re-search-forward notmuch-show-body-end-regexp)
-    (if (not unread)
-       (overlay-put (make-overlay beg (match-beginning 0))
-                    'invisible 'notmuch-show-body-read))
-    (notmuch-show-markup-citations-region beg (point))
-    ))
+    (let ((end (match-beginning 0)))
+      (if (not (member "unread" (notmuch-show-get-tags)))
+         (overlay-put (make-overlay beg end)
+                      'invisible 'notmuch-show-body-read))
+      (notmuch-show-markup-citations-region beg end))))
 
 (defun notmuch-show-markup-header ()
   (re-search-forward notmuch-show-header-begin-regexp)
 
 (defun notmuch-show-markup-header ()
   (re-search-forward notmuch-show-header-begin-regexp)
@@ -202,9 +202,8 @@ Before moving, also remove the \"unread\" tag from the current message."
 (defun notmuch-show-markup-message ()
   (if (re-search-forward notmuch-show-message-begin-regexp nil t)
       (progn
 (defun notmuch-show-markup-message ()
   (if (re-search-forward notmuch-show-message-begin-regexp nil t)
       (progn
-       (let ((unread (looking-at ".*unread$")))
-         (notmuch-show-markup-header)
-         (notmuch-show-markup-body unread)))
+       (notmuch-show-markup-header)
+       (notmuch-show-markup-body))
     (goto-char (point-max))))
 
 (defun notmuch-show-hide-markers ()
     (goto-char (point-max))))
 
 (defun notmuch-show-hide-markers ()