#include <h/mh.h>
#include <h/utils.h>
-#define FALSE 0
-#define TRUE 1
-
/*
** We allocate space to record the names of folders
** (foldersToDo array), this number of elements at a time.
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 */
/* 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 */
nmhdir = toabsdir("+");
/*
- ** If we didn't specify any sequences, we search
- ** for the "Unseen-Sequence" profile entry and use
- ** all the sequences defined there. We check to
- ** make sure that the Unseen-Sequence entry doesn't
- ** contain more than NUMATTRS sequences.
+ ** If no sequences specified, we use the `unseen' sequence(s)
+ ** We check to make sure that the Unseen-Sequence entry doesn't
+ ** contain too many sequences.
*/
if (numsequences == 0) {
- if ((cp = context_find(usequence)) && *cp) {
- char **ap, *dp;
+ char **ap, *dp;
- dp = getcpy(cp);
- ap = brkstring(dp, " ", "\n");
- for (; ap && *ap; ap++) {
- if (numsequences >= NUMATTRS)
- adios(NULL, "too many sequences (more than %d) in %s profile entry", NUMATTRS, usequence);
- else
- sequencesToDo[numsequences++] = *ap;
+ if ((cp = context_find(usequence))) {
+ if (!*cp) {
+ adios(NULL, "profile entry %s set, but empty, and no sequence given", usequence);
}
} else {
- adios(NULL, "no sequence specified or %s profile entry found", usequence);
+ cp = seq_unseen; /* use default */
+ }
+ dp = getcpy(cp);
+ ap = brkstring(dp, " ", "\n");
+ for (; ap && *ap; ap++) {
+ if (numsequences >= NUMATTRS) {
+ adios(NULL, "too many sequences (more than %d) in %s profile entry", NUMATTRS, usequence);
+ } else {
+ sequencesToDo[numsequences++] = *ap;
+ }
}
}
** If base directory, don't add it to the
** folder list. We just recurse into it.
*/
- if (!strcmp(dirName, ".")) {
+ if (strcmp(dirName, ".")==0) {
BuildFolderListRecurse(".", &st, 0);
return;
}
** A hack so that we don't see a
** leading "./" in folder names.
*/
- base = strcmp(dirName, ".") ? dirName : dirName + 1;
+ base = (strcmp(dirName, ".")==0) ? dirName + 1 : dirName;
while (nlinks && (dp = readdir(dir))) {
- if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) {
+ if (strcmp(dp->d_name, ".")==0 ||
+ strcmp(dp->d_name, "..")==0) {
nlinks--;
continue;
}
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;
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) {
for (j = 0; j < numsequences; j++) {
if (folders[i].nSeq[j] > 0 || showzero) {
/* Add `+' to end of name of current folder */
- if (strcmp(curfol, folders[i].name))
+ if (strcmp(curfol, folders[i].name)!=0)
snprintf(tmpname, sizeof(tmpname),
"%s", folders[i].name);
else
nl = strlen(name);
for (i = 0; i < nOrders; ++i) {
o = &orders[i];
- if (!strcmp(name, o->name))
+ if (strcmp(name, o->name)==0)
return o->priority;
ol = strlen(o->name);
if (nl < ol - 1)
continue;
if (ol < bestLen)
continue;
- if (o->name[0] == '*' && !strcmp(o->name + 1,
- name + (nl - ol + 1))) {
+ if (o->name[0] == '*' &&
+ strcmp(o->name + 1, name + (nl - ol + 1))==0) {
best = o->priority;
bestLen = ol;
} else if (o->name[ol - 1] == '*' &&
char atrcur[BUFSIZ];
register struct node *np;
- snprintf(atrcur, sizeof(atrcur), "atr-%s-", current);
+ snprintf(atrcur, sizeof(atrcur), "atr-%s-", seq_cur);
atrlen = strlen(atrcur);
for (np = m_defs; np; np = np->n_next)
- if (isprefix(atrcur, np->n_name)
- && !isprefix(nmhdir, np->n_name + atrlen))
+ if (strncmp(np->n_name, atrcur, atrlen)==0
+ && strncmp(np->n_name+atrlen, nmhdir, strlen(nmhdir))!=0)
+ /* Why do we exclude absolute path names? --meillo */
BuildFolderList(np->n_name + atrlen, 0);
}