X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=buffy.c;h=208eaacae146025ea26a72777059116d52f56b7e;hp=4234a4e981d08be4ddec994fb7e717fc9d70b696;hb=1c068b6a0b9c781e97d565f1d5ed9ef8913566da;hpb=cfd46a622a446af8a5fa286637cd88259f1b50a5 diff --git a/buffy.c b/buffy.c index 4234a4e..208eaac 100644 --- a/buffy.c +++ b/buffy.c @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include "mutt.h" #include "buffy.h" #include "mailbox.h" @@ -407,13 +411,21 @@ int mutt_buffy_check (int force) (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) { /* one new and undeleted message is enough */ - BuffyCount++; - tmp->has_new = tmp->new = 1; - tmp->msgcount++; - tmp->msg_unread++; + if (tmp->new != 1) + { + BuffyCount++; + tmp->has_new = tmp->new = 1; + } + tmp->msgcount++; + tmp->msg_unread++; } } closedir (dirp); +#if 1 + /* I commented this out because it led to an infite "New mail in ..." loop, + * and when looking at the code, the check seems to be overly eager. + * -- ak + */ snprintf (path, sizeof (path), "%s/cur", tmp->path); if ((dirp = opendir (path)) == NULL) { @@ -428,11 +440,17 @@ int mutt_buffy_check (int force) { /* one new and undeleted message is enough */ BuffyCount++; +#if 0 + /* we're checking for read and not new mail; + * seems like copy'n'paste error + */ tmp->has_new = tmp->new = 1; - tmp->msgcount++; +#endif + tmp->msgcount++; } } closedir (dirp); +#endif break; case M_MH: @@ -508,7 +526,7 @@ int mutt_buffy_list (void) pos = 0; first = 1; buffylist[0] = 0; - pos += strlen (strncat (buffylist, _("New mail in "), sizeof (buffylist) - 1 - pos)); + pos += strlen (strncat (buffylist, _("New mail in "), sizeof (buffylist) - 1 - pos)); /* __STRNCAT_CHECKED__ */ for (tmp = Incoming; tmp; tmp = tmp->next) { /* Is there new mail in this mailbox? */ @@ -522,21 +540,21 @@ int mutt_buffy_list (void) break; if (!first) - pos += strlen (strncat(buffylist + pos, ", ", sizeof(buffylist)-1-pos)); + pos += strlen (strncat(buffylist + pos, ", ", sizeof(buffylist)-1-pos)); /* __STRNCAT_CHECKED__ */ /* Prepend an asterisk to mailboxes not already notified */ if (!tmp->notified) { - /* pos += strlen (strncat(buffylist + pos, "*", sizeof(buffylist)-1-pos)); */ + /* pos += strlen (strncat(buffylist + pos, "*", sizeof(buffylist)-1-pos)); __STRNCAT_CHECKED__ */ tmp->notified = 1; BuffyNotify--; } - pos += strlen (strncat(buffylist + pos, path, sizeof(buffylist)-1-pos)); + pos += strlen (strncat(buffylist + pos, path, sizeof(buffylist)-1-pos)); /* __STRNCAT_CHECKED__ */ first = 0; } if (!first && tmp) { - strncat (buffylist + pos, ", ...", sizeof (buffylist) - 1 - pos); + strncat (buffylist + pos, ", ...", sizeof (buffylist) - 1 - pos); /* __STRNCAT_CHECKED__ */ } if (!first) {