From: Oliver Kiddle <okiddle@yahoo.co.uk>
Date: Wed, 2 Nov 2005 17:22:27 +0000 (+0000)
Subject: speed up flist by skipping stat on files with numbers as names
X-Git-Tag: RELEASE_1_2~33
X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=0c3be1c75f481d085d0ada3e9a714051a221be80;p=mmh

speed up flist by skipping stat on files with numbers as names
---

diff --git a/ChangeLog b/ChangeLog
index 9d3230be..fab11c7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-11-02  Oliver Kiddle  <okiddle@yahoo.co.uk>
 
+	* patch #1155: uip/flist.c: speed up flist by skipping stat on
+	files with numbers as names
+
 	* docs/Makefile.in: include new files in distribution
 
 2005-10-11  Bill Wohler  <wohler@newt.com>
diff --git a/uip/flist.c b/uip/flist.c
index a79c8420..408f6082 100644
--- a/uip/flist.c
+++ b/uip/flist.c
@@ -401,7 +401,7 @@ BuildFolderList(char *dirName, int searchdepth)
 void
 BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
 {
-    char *base, name[PATH_MAX];
+    char *base, *n, name[PATH_MAX];
     int nlinks;
     DIR *dir;
     struct dirent *dp;
@@ -432,6 +432,12 @@ BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
 	}
 	if (dp->d_name[0] == '.')
 	    continue;
+	/* Check to see if the name of the file is a number
+	 * if it is, we assume it's a mail file and skip it
+	 */
+	for (n = dp->d_name; *n && isdigit(*n); n++);
+	if (!*n)
+	    continue;
 	strncpy (name, base, sizeof(name) - 2);
 	if (*base)
 	    strcat(name, "/");