projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Here's a better test of Resent-From: in test-rcvdist: use the user's
[mmh]
/
uip
/
flist.c
diff --git
a/uip/flist.c
b/uip/flist.c
index
1e850cb
..
b4aff9c
100644
(file)
--- a/
uip/flist.c
+++ b/
uip/flist.c
@@
-12,8
+12,6
@@
* control laws. This software is made available AS IS, and Xerox Corporation
* makes no warranty about the software, its performance or its conformity to
* any specification.
* control laws. This software is made available AS IS, and Xerox Corporation
* makes no warranty about the software, its performance or its conformity to
* any specification.
- *
- * $Id$
*/
#include <h/mh.h>
*/
#include <h/mh.h>
@@
-76,7
+74,7
@@
static struct Folder *orders = NULL;
static int nOrders = 0;
static int nOrdersAlloced = 0;
static struct Folder *folders = NULL;
static int nOrders = 0;
static int nOrdersAlloced = 0;
static struct Folder *folders = NULL;
-static int nFolders = 0;
+static unsigned int nFolders = 0;
static int nFoldersAlloced = 0;
/* info on folders to search */
static int nFoldersAlloced = 0;
/* info on folders to search */
@@
-86,7
+84,7
@@
static int maxfolders;
/* info on sequences to search for */
static char *sequencesToDo[NUMATTRS];
/* info on sequences to search for */
static char *sequencesToDo[NUMATTRS];
-static int numsequences;
+static unsigned int numsequences;
static int all = FALSE; /* scan all folders in top level? */
static int alphaOrder = FALSE; /* want alphabetical order only */
static int all = FALSE; /* scan all folders in top level? */
static int alphaOrder = FALSE; /* want alphabetical order only */
@@
-114,7
+112,6
@@
int AddFolder(char *, int);
void BuildFolderList(char *, int);
void BuildFolderListRecurse(char *, struct stat *, int);
void PrintFolders(void);
void BuildFolderList(char *, int);
void BuildFolderListRecurse(char *, struct stat *, int);
void PrintFolders(void);
-static int num_digits (int);
void AllocFolders(struct Folder **, int *, int);
int AssignPriority(char *);
static void do_readonly_folders(void);
void AllocFolders(struct Folder **, int *, int);
int AssignPriority(char *);
static void do_readonly_folders(void);
@@
-168,10
+165,10
@@
main(int argc, char **argv)
snprintf(buf, sizeof(buf), "%s [+folder1 [+folder2 ...]][switches]",
invo_name);
print_help(buf, switches, 1);
snprintf(buf, sizeof(buf), "%s [+folder1 [+folder2 ...]][switches]",
invo_name);
print_help(buf, switches, 1);
- done(1);
+ done(0);
case VERSIONSW:
print_version(invo_name);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done (0);
case SEQSW:
if (!(cp = *argp++) || *cp == '-')
case SEQSW:
if (!(cp = *argp++) || *cp == '-')
@@
-228,13
+225,12
@@
main(int argc, char **argv)
*/
if (numfolders >= maxfolders) {
maxfolders += MAXFOLDERS;
*/
if (numfolders >= maxfolders) {
maxfolders += MAXFOLDERS;
- if (!(foldersToDo = (char **) realloc (foldersToDo,
- (size_t) (maxfolders * sizeof(*foldersToDo)))))
- adios (NULL, "unable to reallocate folder name storage");
+ foldersToDo = (char **) mh_xrealloc (foldersToDo,
+ (size_t) (maxfolders * sizeof(*foldersToDo)));
}
if (*cp == '+' || *cp == '@') {
foldersToDo[numfolders++] =
}
if (*cp == '+' || *cp == '@') {
foldersToDo[numfolders++] =
- path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+ pluspath (cp);
} else
foldersToDo[numfolders++] = cp;
}
} else
foldersToDo[numfolders++] = cp;
}
@@
-278,7
+274,8
@@
main(int argc, char **argv)
ScanFolders();
qsort(folders, nFolders, sizeof(struct Folder), (qsort_comp) CompareFolders);
PrintFolders();
ScanFolders();
qsort(folders, nFolders, sizeof(struct Folder), (qsort_comp) CompareFolders);
PrintFolders();
- return done (0);
+ done (0);
+ return 1;
}
/*
}
/*
@@
-289,7
+286,7
@@
main(int argc, char **argv)
void
GetFolderOrder(void)
{
void
GetFolderOrder(void)
{
- char *p, *s;
+ unsigned char *p, *s;
int priority = 1;
struct Folder *o;
int priority = 1;
struct Folder *o;
@@
-401,7
+398,8
@@
BuildFolderList(char *dirName, int searchdepth)
void
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
{
void
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
{
- char *base, *n, name[PATH_MAX];
+ char *base, name[PATH_MAX];
+ unsigned char *n;
int nlinks;
DIR *dir;
struct dirent *dp;
int nlinks;
DIR *dir;
struct dirent *dp;
@@
-415,6
+413,12
@@
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
* stat them. But that shouldn't generally be a problem.
*/
nlinks = s->st_nlink;
* stat them. But that shouldn't generally be a problem.
*/
nlinks = s->st_nlink;
+ if (nlinks == 1) {
+ /* Disable the optimization under conditions where st_nlink
+ is set to 1. That happens on Cygwin, for example:
+ http://cygwin.com/ml/cygwin-apps/2008-08/msg00264.html */
+ nlinks = INT_MAX;
+ }
if (!(dir = opendir(dirName)))
adios(dirName, "can't open directory");
if (!(dir = opendir(dirName)))
adios(dirName, "can't open directory");
@@
-466,7
+470,8
@@
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
int
AddFolder(char *name, int force)
{
int
AddFolder(char *name, int force)
{
- int i, msgnum, nonzero;
+ unsigned int i;
+ int msgnum, nonzero;
int seqnum[NUMATTRS], nSeq[NUMATTRS];
struct Folder *f;
struct msgs *mp;
int seqnum[NUMATTRS], nSeq[NUMATTRS];
struct Folder *f;
struct msgs *mp;
@@
-536,8
+541,8
@@
void
PrintFolders(void)
{
char tmpname[BUFSIZ];
PrintFolders(void)
{
char tmpname[BUFSIZ];
- int i, j, len, has_private = 0;
- int maxfolderlen = 0, maxseqlen = 0;
+ unsigned int i, j, len, has_private = 0;
+ unsigned int maxfolderlen = 0, maxseqlen = 0;
int maxnum = 0, maxseq = 0;
if (!Total) {
int maxnum = 0, maxseq = 0;
if (!Total) {
@@
-606,29
+611,6
@@
PrintFolders(void)
}
/*
}
/*
- * Calculate the number of digits in a nonnegative integer
- */
-static int
-num_digits (int n)
-{
- int ndigits = 0;
-
- /* Sanity check */
- if (n < 0)
- adios (NULL, "oops, num_digits called with negative value");
-
- if (n == 0)
- return 1;
-
- while (n) {
- n /= 10;
- ndigits++;
- }
-
- return ndigits;
-}
-
-/*
* Put them in priority order.
*/
* Put them in priority order.
*/
@@
-655,7
+637,7
@@
AllocFolders(struct Folder **f, int *nfa, int n)
*f = (struct Folder *) mh_xmalloc (*nfa * (sizeof(struct Folder)));
} else {
*nfa *= 2;
*f = (struct Folder *) mh_xmalloc (*nfa * (sizeof(struct Folder)));
} else {
*nfa *= 2;
- *f = (struct Folder *) realloc (*f, *nfa * (sizeof(struct Folder)));
+ *f = (struct Folder *) mh_xrealloc (*f, *nfa * (sizeof(struct Folder)));
}
}
}
}