Fix a bug when changing folder
authorJulien Danjou <julien@danjou.info>
Fri, 17 Nov 2006 15:44:40 +0000 (16:44 +0100)
committerPierre Habouzit <madcoder@debian.org>
Fri, 17 Nov 2006 17:22:32 +0000 (18:22 +0100)
If we press 'c' it prompts for local mailbox if no other
mailboxes have new mail. It should return null instead, like
mutt does.

Signed-off-by: Julien Danjou <julien@danjou.info>
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
buffy.c

diff --git a/buffy.c b/buffy.c
index 0db6026..dfadbe8 100644 (file)
--- a/buffy.c
+++ b/buffy.c
@@ -152,7 +152,7 @@ void buffy_update_mailbox (BUFFY * b)
 #endif
 
 /* func to free buffy for list_del() */
-static void buffy_free (BUFFY** p) {
+static inline void buffy_free (BUFFY** p) {
   p_delete(&(*p)->path);
   p_delete(p);
 }
@@ -486,7 +486,7 @@ int buffy_list (void)
   pos += m_strlen(strncat (buffylist, _("New mail in "), sizeof (buffylist) - 1 - pos)); /* __STRNCAT_CHECKED__ */
   if (Incoming) {
     for (i = 0; i < Incoming->length; i++) {
-      tmp = (BUFFY*) Incoming->data[i];
+      tmp = Incoming->data[i];
       /* Is there new mail in this mailbox? */
       if (tmp->new <= 0 || (have_unnotified && tmp->notified))
         continue;
@@ -500,12 +500,9 @@ int buffy_list (void)
       if (!first)
         pos += m_strlen(strncat (buffylist + pos, ", ", sizeof (buffylist) - 1 - pos));    /* __STRNCAT_CHECKED__ */
 
-      /* Prepend an asterisk to mailboxes not already notified */
-      if (!tmp->notified) {
-        /* pos += m_strlen(strncat(buffylist + pos, "*", sizeof(buffylist)-1-pos));  __STRNCAT_CHECKED__ */
-        tmp->notified = 1;
-        BuffyNotify--;
-      }
+      tmp->notified = 1;
+      BuffyNotify--;
+
       pos += m_strlen(strncat (buffylist + pos, path, sizeof (buffylist) - 1 - pos));      /* __STRNCAT_CHECKED__ */
       first = 0;
     }
@@ -535,7 +532,7 @@ int buffy_notify (void)
 }
 
 /* 
- * mutt_buffy() -- incoming folders completion routine
+ * buffy_next() -- incoming folders completion routine
  *
  * given a folder name, this routine gives the next incoming folder with new
  * new mail.
@@ -545,14 +542,11 @@ void buffy_next (char *s, size_t slen)
   int l = 0;
   int c = 0, i = 0;
 
-  if (list_empty(Incoming))
-    return;
-
   mutt_expand_path (s, _POSIX_PATH_MAX);
-  if (buffy_check (0) == 0) {
-    *s = '\0';
-    return;
-  }
+  if (!buffy_check (0)) {
+      *s = '\0';
+      return;
+    }
 
   /*
    * If buffy_lookup returns the index,