projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* h/mh.h, h/prototypes.h, uip/mhbuildsbr.c, uip/send.c,
[mmh]
/
uip
/
flist.c
diff --git
a/uip/flist.c
b/uip/flist.c
index
0e2b161
..
36be1ed
100644
(file)
--- a/
uip/flist.c
+++ b/
uip/flist.c
@@
-17,6
+17,7
@@
*/
#include <h/mh.h>
*/
#include <h/mh.h>
+#include <h/utils.h>
#define FALSE 0
#define TRUE 1
#define FALSE 0
#define TRUE 1
@@
-58,7
+59,7
@@
static struct swit switches[] = {
#define VERSIONSW 13
{ "version", 0 },
#define HELPSW 14
#define VERSIONSW 13
{ "version", 0 },
#define HELPSW 14
- { "help", 4 },
+ { "help", 0 },
{ NULL, 0 }
};
{ NULL, 0 }
};
@@
-113,7
+114,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);
@@
-148,8
+148,7
@@
main(int argc, char **argv)
/* allocate the initial space to record the folder names */
numfolders = 0;
maxfolders = MAXFOLDERS;
/* allocate the initial space to record the folder names */
numfolders = 0;
maxfolders = MAXFOLDERS;
- if (!(foldersToDo = (char **) malloc ((size_t) (maxfolders * sizeof(*foldersToDo)))))
- adios (NULL, "unable to allocate folder storage");
+ foldersToDo = (char **) mh_xmalloc ((size_t) (maxfolders * sizeof(*foldersToDo)));
/* no sequences yet */
numsequences = 0;
/* no sequences yet */
numsequences = 0;
@@
-228,13
+227,14
@@
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++] = cp;
+ if (*cp == '+' || *cp == '@') {
+ foldersToDo[numfolders++] =
+ path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+ } else
+ foldersToDo[numfolders++] = cp;
}
}
}
}
@@
-276,7
+276,7
@@
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();
- done (0);
+ return done (0);
}
/*
}
/*
@@
-304,7
+304,7
@@
GetFolderOrder(void)
AllocFolders(&orders, &nOrdersAlloced, nOrders + 1);
o = &orders[nOrders++];
o->priority = priority++;
AllocFolders(&orders, &nOrdersAlloced, nOrders + 1);
o = &orders[nOrders++];
o->priority = priority++;
- o->name = (char *) malloc(p - s + 1);
+ o->name = (char *) mh_xmalloc(p - s + 1);
strncpy(o->name, s, p - s);
o->name[p - s] = 0;
} else
strncpy(o->name, s, p - s);
o->name[p - s] = 0;
} else
@@
-399,7
+399,7
@@
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, name[PATH_MAX];
+ char *base, *n, name[PATH_MAX];
int nlinks;
DIR *dir;
struct dirent *dp;
int nlinks;
DIR *dir;
struct dirent *dp;
@@
-430,6
+430,12
@@
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
}
if (dp->d_name[0] == '.')
continue;
}
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, "/");
strncpy (name, base, sizeof(name) - 2);
if (*base)
strcat(name, "/");
@@
-598,29
+604,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.
*/
@@
-644,10
+627,10
@@
AllocFolders(struct Folder **f, int *nfa, int n)
return;
if (*f == NULL) {
*nfa = 10;
return;
if (*f == NULL) {
*nfa = 10;
- *f = (struct Folder *) malloc (*nfa * (sizeof(struct Folder)));
+ *f = (struct Folder *) mh_xmalloc (*nfa * (sizeof(struct Folder)));
} else {
*nfa *= 2;
} else {
*nfa *= 2;
- *f = (struct Folder *) realloc (*f, *nfa * (sizeof(struct Folder)));
+ *f = (struct Folder *) mh_xrealloc (*f, *nfa * (sizeof(struct Folder)));
}
}
}
}
@@
-695,10
+678,6
@@
do_readonly_folders (void)
char atrcur[BUFSIZ];
register struct node *np;
char atrcur[BUFSIZ];
register struct node *np;
- /* sanity check - check that context has been read */
- if (defpath == NULL)
- adios (NULL, "oops, context hasn't been read yet");
-
snprintf (atrcur, sizeof(atrcur), "atr-%s-", current);
atrlen = strlen (atrcur);
snprintf (atrcur, sizeof(atrcur), "atr-%s-", current);
atrlen = strlen (atrcur);