Rocco Rutte:
[apps/madmutt.git] / browser.c
index 585dc1b..1a1f71e 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -487,6 +487,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state,
     for (tmp = news->list; tmp; tmp = tmp->next) {
       if (!(data = (NNTP_DATA *) tmp->data))
         continue;
+      nntp_sync_sidebar (data);
       if (prefix && *prefix && strncmp (prefix, data->group,
                                         str_len (prefix)) != 0)
         continue;
@@ -494,6 +495,7 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state,
         continue;
       add_folder (menu, state, data->group, NULL, data, data->new);
     }
+    sidebar_draw (CurrentMenu);
   }
   else
 #endif /* USE_NNTP */
@@ -576,14 +578,14 @@ static int examine_mailboxes (MUTTMENU * menu, struct browser_state *state)
     init_state (state, menu);
 
     for (tmp = news->list; tmp; tmp = tmp->next) {
-      if ((data = (NNTP_DATA *) tmp->data) != NULL && (data->new ||
-                                                       (data->subscribed
-                                                        &&
-                                                        (!option
-                                                         (OPTSHOWONLYUNREAD)
-                                                         || data->unread))))
+      if ((data = (NNTP_DATA*) tmp->data) == NULL)
+        continue;
+      nntp_sync_sidebar (data);
+      if ((data->new || (data->subscribed && 
+                         (!option (OPTSHOWONLYUNREAD)|| data->unread))))
         add_folder (menu, state, data->group, NULL, data, data->new);
     }
+    sidebar_draw (CurrentMenu);
   }
   else
 #endif
@@ -819,6 +821,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
       init_state (&state, NULL);
       state.imap_browse = 1;
       imap_browse (LastDir, &state);
+      browser_sort (&state);
     }
 #endif
   }
@@ -954,6 +957,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
             init_state (&state, NULL);
             state.imap_browse = 1;
             imap_browse (LastDir, &state);
+            browser_sort (&state);
             menu->data = state.entry;
           }
           else
@@ -1052,6 +1056,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
         init_state (&state, NULL);
         state.imap_browse = 1;
         imap_browse (LastDir, &state);
+        browser_sort (&state);
         menu->data = state.entry;
         menu->current = 0;
         menu->top = 0;
@@ -1071,6 +1076,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
           init_state (&state, NULL);
           state.imap_browse = 1;
           imap_browse (LastDir, &state);
+          browser_sort (&state);
           menu->data = state.entry;
           menu->current = 0;
           menu->top = 0;
@@ -1145,6 +1151,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
           init_state (&state, NULL);
           state.imap_browse = 1;
           imap_browse (LastDir, &state);
+          browser_sort (&state);
           menu->data = state.entry;
           menu->current = 0;
           menu->top = 0;
@@ -1216,6 +1223,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
             init_state (&state, NULL);
             state.imap_browse = 1;
             imap_browse (LastDir, &state);
+            browser_sort (&state);
             menu->data = state.entry;
             init_menu (&state, menu, title, sizeof (title), buffy);
           }
@@ -1300,6 +1308,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
         init_state (&state, NULL);
         state.imap_browse = 1;
         imap_browse (LastDir, &state);
+        browser_sort (&state);
         menu->data = state.entry;
       }
 #endif
@@ -1309,6 +1318,8 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
       break;
 
     case OP_BUFFY_LIST:
+      if (option (OPTFORCEBUFFYCHECK))
+        buffy_check (1);
       buffy_list ();
       break;