diff -rc mutt-0.47/dirlist.c mutt-0.47.mc/dirlist.c
*** mutt-0.47/dirlist.c	Fri Oct  4 14:40:17 1996
--- mutt-0.47.mc/dirlist.c	Thu Oct 17 12:34:32 1996
***************
*** 128,134 ****
      if (S_ISDIR(s.st_mode))
        sprintf(buffer, "Directory");
      else {
!       sprintf(buffer, "(%7d bytes)", (int)s.st_size);
      }
      
      LOCAL.entries[LOCAL.max] = (struct folder_file *)safe_malloc(sizeof(struct folder_file));
--- 128,142 ----
      if (S_ISDIR(s.st_mode))
        sprintf(buffer, "Directory");
      else {
!       int mesgs;
!       int new;
!       char folder[STRING];
! 
!       snprintf(folder,sizeof(folder),"%s/%s",d,de->d_name);
!       if (count_folder_mail(folder,s,&mesgs,&new))
!         sprintf(buffer, "(%7d bytes)\t%d/%d",(int)s.st_size,new,mesgs);
!        else
!         sprintf(buffer, "(%7d bytes)", (int)s.st_size);
      }
      
      LOCAL.entries[LOCAL.max] = (struct folder_file *)safe_malloc(sizeof(struct folder_file));
***************
*** 167,172 ****
--- 175,237 ----
    snprintf(fmt, sizeof(fmt), "%%-%ds   %%-%ds", LOCAL.namelen, LOCAL.desclen);
    snprintf(s, slen, fmt, LOCAL.entries[num]->name, LOCAL.entries[num]->desc);
  }
+ 
+ int count_folder_mail (char *folder, struct stat s, int *mesgs, int *new)
+ {
+   FILE *fp;
+   char buffer[STRING];
+   char garbage[STRING];
+   int in_header = TRUE;
+   int status = FALSE;
+   
+   *mesgs = 0;
+   *new = 0;
+   dprint(1,(debugfile, "count_folder_mail(): start (%s).\n",folder));
+   if ((s.st_size == 0) || (S_ISDIR(s.st_mode))) return 0;
+ 
+   if ((fp = fopen(folder,"r")) == NULL) return 0;
+ 
+   /* Check if a folder by checking for From as first thing in file */
+   fgets(buffer, sizeof(buffer), fp);
+   if (is_from(buffer,garbage,sizeof(garbage))) (*mesgs)++;
+    else return 0;
+ 
+   while (fgets(buffer, sizeof(buffer), fp) != 0) {
+     if ((index(buffer, '\n') == NULL) && (!feof(fp))) {
+       /* Finish reading to end of line (but discard, since we don't care */
+       int c;
+     
+       while ((c = getc(fp)) != EOF && c != '\n');
+     }
+ 
+     if ((!in_header) && (is_from(buffer,garbage,sizeof(garbage)))) {
+       in_header = TRUE;
+       (*mesgs)++;
+       dprint(2,(debugfile, "count_folder_mail(): mesg %d.\n",*mesgs));
+     } 
+     else if (in_header) {
+       if (!strncmp(buffer,"Status:",7)) {
+         status = TRUE;
+         if (!strchr(buffer,'R') && !strchr(buffer,'O')) (*new)++;
+       }
+       else if (buffer[0] == '\n') { 
+         in_header = FALSE;
+ 	if (status == FALSE) (*new)++;
+ 	  else status = FALSE;
+       }
+     }
+   }
+   fclose(fp);
+ 
+   return 1;
+ }
+  
+ 
+ 
+ 
+ 
+ 
+ 
  
  void folder_select (const char *d, char *f)
  {
