From fd204cba10834057df23ba10458d4095b424e964 Mon Sep 17 00:00:00 2001 From: ak1 Date: Thu, 24 Feb 2005 15:21:00 +0000 Subject: [PATCH 1/1] Andreas Krennmair: implemented feature request #643 git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@87 e385b8ad-14ed-0310-8656-cc95a2468c6d --- ChangeLog.mutt-ng | 1 + buffy.c | 1 + buffy.h | 1 + sidebar.c | 29 +++++++++++++++++++++-------- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ChangeLog.mutt-ng b/ChangeLog.mutt-ng index 3c8a68d..0dac4d6 100644 --- a/ChangeLog.mutt-ng +++ b/ChangeLog.mutt-ng @@ -2,6 +2,7 @@ Changes specific to mutt-ng: 2005-02-24: * Integrated another sidebar fix and a build fix from Rocco Rutte. + * Implemented feature request that the number of tagged messages is shown in the sidebar 2005-02-23: * Integrated assume_charset patch from http://www.emaillab.org/mutt/download15.html.en diff --git a/buffy.c b/buffy.c index 208eaac..757d583 100644 --- a/buffy.c +++ b/buffy.c @@ -404,6 +404,7 @@ int mutt_buffy_check (int force) } tmp->msgcount = 0; tmp->msg_unread = 0; + tmp->msg_tagged = 0; while ((de = readdir (dirp)) != NULL) { char *p; diff --git a/buffy.h b/buffy.h index 1506247..8b0ec1b 100644 --- a/buffy.h +++ b/buffy.h @@ -32,6 +32,7 @@ typedef struct buffy_t short has_new; /* set it new if new and not read */ int msgcount; /* total number of messages */ int msg_unread; /* number of unread messages */ + int msg_tagged; /* number of tagged messages */ short notified; /* user has been notified */ short magic; /* mailbox type */ short newly_created; /* mbox or mmdf just popped into existence */ diff --git a/sidebar.c b/sidebar.c index 8adea8f..4f5d17c 100644 --- a/sidebar.c +++ b/sidebar.c @@ -133,7 +133,7 @@ static char * shortened_hierarchy(char * box) { return safe_strdup(box); } -char *make_sidebar_entry(char *box, int size, int new) +char *make_sidebar_entry(char *box, int size, int new, int tagged) { char *c; int i = 0, dlen = mutt_strlen (SidebarDelim); @@ -155,11 +155,22 @@ char *make_sidebar_entry(char *box, int size, int new) i = strlen(box); strncpy( entry, box, i < SidebarWidth - dlen ? i :SidebarWidth - dlen); - if ( new ) - sprintf(entry + SidebarWidth - 3 - quick_log10(size) - dlen - quick_log10(new), - "% d(%d)", size, new); - else - sprintf( entry + SidebarWidth - 1 - quick_log10(size) - dlen, "% d", size); + if ( new ) { + if (tagged>0) { + sprintf(entry + SidebarWidth - 5 - quick_log10(size) - dlen - quick_log10(new) - quick_log10(tagged), + "% d(%d)[%d]", size, new, tagged); + } else { + sprintf(entry + SidebarWidth - 3 - quick_log10(size) - dlen - quick_log10(new), + "% d(%d)", size, new); + } + } else { + if (tagged>0) { + sprintf( entry + SidebarWidth - 3 - quick_log10(size) - dlen - quick_log10(tagged), "% d[%d]", size,tagged); + } else { + sprintf( entry + SidebarWidth - 1 - quick_log10(size) - dlen, "% d", size); + } + + } if (option(OPTSHORTENHIERARCHY)) { free(box); } @@ -195,6 +206,7 @@ void set_buffystats (CONTEXT* Context) { tmp->msg_unread = Context->unread; tmp->msgcount = Context->msgcount; + tmp->msg_tagged = Context->flagged; break; } tmp = tmp->next; @@ -261,14 +273,15 @@ int draw_sidebar(int menu) { if ( Context && !strcmp( tmp->path, Context->path ) ) { printw( "%.*s", SidebarWidth - delim_len, make_sidebar_entry(basename(tmp->path), - Context->msgcount, Context->unread)); + Context->msgcount, Context->unread, Context->tagged)); tmp->msg_unread = Context->unread; tmp->msgcount = Context->msgcount; + tmp->msg_tagged = Context->tagged; } else printw( "%.*s", SidebarWidth - delim_len, make_sidebar_entry(basename(tmp->path), - tmp->msgcount,tmp->msg_unread)); + tmp->msgcount,tmp->msg_unread, tmp->msg_tagged)); lines++; } SETCOLOR(MT_COLOR_NORMAL); -- 2.20.1