Rocco Rutte:
[apps/madmutt.git] / buffy.c
diff --git a/buffy.c b/buffy.c
index ca84ce9..c955ab9 100644 (file)
--- a/buffy.c
+++ b/buffy.c
@@ -174,25 +174,12 @@ void mutt_update_mailbox (BUFFY * b)
 
 int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *err)
 {
-  BUFFY **tmp,*tmp1,*last;
+  BUFFY **tmp,*tmp1;
   char buf[_POSIX_PATH_MAX];
-  int dup = 0;
 #ifdef BUFFY_SIZE
   struct stat sb;
 #endif /* BUFFY_SIZE */
 
-  /*
-   * FIXME
-   * to get rid of correcting the ->prev pointers in sidebar.c,
-   * correct them right here
-   */
-
-  /*
-   * FIXME
-   * if we really want to make the sort order of the sidebar
-   * configurable, this has to go right here
-   */
-  
   while (MoreArgs (s))
   {
     mutt_extract_token (path, s, 0);
@@ -216,19 +203,12 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
     if(!*buf) continue;
 
     /* simple check to avoid duplicates */
-    dup = 0;
-    for (tmp = &Incoming; *tmp && dup == 0; tmp = &((*tmp)->next))
+    for (tmp = &Incoming; *tmp; tmp = &((*tmp)->next))
     {
-      if (mutt_strcmp (buf, (*tmp)->path) == 0) {
-        dup = 1;
-        break;
-      }
+      if (mutt_strcmp (buf, (*tmp)->path) == 0)
+       break;
     }
 
-    if (dup == 1)
-      continue;
-    tmp = &Incoming;
-
     if(data == M_UNMAILBOXES)
     {
       if(*tmp)
@@ -241,32 +221,16 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
       continue;
     }
 
-    /* loop over list while it's sorted */
-    tmp1 = NULL;
-    last = NULL;
-    for (tmp = &Incoming; *tmp ; tmp = &((*tmp)->next)) {
-      /*
-       * FIXME
-       * change this to get whatever sorting order
-       */
-      if (mutt_strcmp (buf, (*tmp)->path) < 0) {
-        tmp1 = (*tmp);
-        break;
-      }
-      last = (*tmp);
+    if (!*tmp)
+    {
+      *tmp = (BUFFY *) safe_calloc (1, sizeof (BUFFY));
+      (*tmp)->path = safe_strdup (buf);
+      (*tmp)->next = NULL;
+      /* it is tempting to set magic right here */
+      (*tmp)->magic = 0;
+      
     }
 
-    /* we want: last -> tmp -> tmp1 */
-    *tmp = (BUFFY *) safe_calloc (1, sizeof (BUFFY));
-    (*tmp)->path = safe_strdup (buf);
-    (*tmp)->magic = 0;
-
-    /* correct pointers */
-    (*tmp)->next = tmp1;
-    if (last)
-      last->next = (*tmp);
-
-    /* left as-is */
     (*tmp)->new = 0;
     (*tmp)->notified = 1;
     (*tmp)->newly_created = 0;
@@ -310,9 +274,10 @@ int mutt_buffy_check (int force)
   DIR *dirp;
   char path[_POSIX_PATH_MAX];
   struct stat contex_sb;
-  time_t now, last1, last2;
+  time_t now, last1;
   CONTEXT *ctx;
 #ifdef USE_IMAP
+  time_t last2;
   /* update postponed count as well, on force */
   if (force != 0)
     mutt_update_num_postponed ();
@@ -569,7 +534,7 @@ int mutt_buffy_check (int force)
       tmp->size = (long) sb.st_size;   /* update the size */
 #endif
 
-    if (!tmp->new)
+    if (tmp->new <= 0)
       tmp->notified = 0;
     else if (!tmp->notified)
       BuffyNotify++;
@@ -599,7 +564,7 @@ int mutt_buffy_list (void)
   for (tmp = Incoming; tmp; tmp = tmp->next)
   {
     /* Is there new mail in this mailbox? */
-    if (!tmp->new || (have_unnotified && tmp->notified))
+    if (tmp->new <= 0 || (have_unnotified && tmp->notified))
       continue;
 
     strfcpy (path, tmp->path, sizeof (path));
@@ -669,7 +634,7 @@ void mutt_buffy (char *s, size_t slen)
 
   case 1:
 
-    while (tmp && !tmp->new)
+    while (tmp && tmp->new <= 0)
       tmp = tmp->next;
     if (!tmp)
     {
@@ -688,7 +653,7 @@ void mutt_buffy (char *s, size_t slen)
     {
       if (mutt_strcmp (s, tmp->path) == 0)
        count++;
-      else if (count && tmp->new)
+      else if (count && tmp->new > 0)
        break;
       tmp = tmp->next;
       if (!tmp)