With the new notmuch_message_get_flags() function we can get the information if a message was already flagged as seen in maildir by another mailer or tool. This gives a more realistic picture instead of flagging all as unread.
Signed-off-by: Stefan Schmidt <stefan at datenfreihafen.org> --- Makefile | 2 +- notmuch-new.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3fedcf1..dfcfc70 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # Default FLAGS, (can be overridden by user such as "make CFLAGS=-O2") WARN_FLAGS=-Wall -Wextra -Wmissing-declarations -Wwrite-strings -Wswitch-enum -CFLAGS=-O2 +CFLAGS=-O0 -ggdb3 # Additional flags that we will append to whatever the user set. # These aren't intended for the user to manipulate. diff --git a/notmuch-new.c b/notmuch-new.c index bc35b4e..ef4429d 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -41,8 +41,22 @@ handle_sigint (unused (int sig)) static void tag_inbox_and_unread (notmuch_message_t *message) { - notmuch_message_add_tag (message, "inbox"); + char *buf; + int i; + + buf = notmuch_message_get_flags (message); + for (i = 0; i < strlen (buf); i++) { + /* If the S flag is set the message can be tagged as read */ + if (buf[i] == 'S') { + notmuch_message_add_tag (message, "read"); + goto inbox; + } + } + notmuch_message_add_tag (message, "unread"); + +inbox: + notmuch_message_add_tag (message, "inbox"); } static void -- 1.6.5.3