X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b56c88e2847c582f9b18ae5bbda44f033cd49c42..6fd1d18f:/uip/flist.c?ds=sidebyside diff --git a/uip/flist.c b/uip/flist.c index 829500d6..057192c3 100644 --- a/uip/flist.c +++ b/uip/flist.c @@ -1,5 +1,4 @@ -/* - * flist.c -- list nmh folders containing messages +/* flist.c -- list nmh folders containing messages * -- in a given sequence * * originally by @@ -16,9 +15,8 @@ #include #include - -#define FALSE 0 -#define TRUE 1 +#include "h/done.h" +#include "sbr/m_maildir.h" /* * We allocate space to record the names of folders @@ -76,11 +74,11 @@ static int maxfolders; /* info on sequences to search for */ static svector_t sequencesToDo; -static int all = FALSE; /* scan all folders in top level? */ -static int alphaOrder = FALSE; /* want alphabetical order only */ -static int recurse = FALSE; /* show nested folders? */ -static int showzero = TRUE; /* show folders even if no messages in seq? */ -static int Total = TRUE; /* display info on number of messages in * +static bool all; /* scan all folders in top level? */ +static bool alphaOrder; /* want alphabetical order only */ +static bool recurse; /* show nested folders? */ +static bool showzero = true; /* show folders even if no messages in seq? */ +static bool Total = true; /* display info on number of messages in * sequence found, and total num messages */ static char curfolder[BUFSIZ]; /* name of the current folder */ @@ -93,17 +91,17 @@ static char *nmhdir; /* base nmh mail directory */ typedef int (*qsort_comp) (const void *, const void *); /* - * prototypes + * static prototypes */ -int CompareFolders(struct Folder *, struct Folder *); -void GetFolderOrder(void); -void ScanFolders(void); -int AddFolder(char *, int); -void BuildFolderList(char *, int); -void BuildFolderListRecurse(char *, struct stat *, int); -void PrintFolders(void); -void AllocFolders(struct Folder **, int *, int); -int AssignPriority(char *); +static int CompareFolders(struct Folder *, struct Folder *); +static void GetFolderOrder(void); +static void ScanFolders(void); +static int AddFolder(char *, int); +static void BuildFolderList(char *, int); +static void BuildFolderListRecurse(char *, struct stat *, int); +static void PrintFolders(void); +static void AllocFolders(struct Folder **, int *, int); +static int AssignPriority(char *); static void do_readonly_folders(void); @@ -121,8 +119,7 @@ main(int argc, char **argv) * If program was invoked with name ending * in `s', then add switch `-all'. */ - if (argv[0][strlen (argv[0]) - 1] == 's') - all = TRUE; + all = has_suffix_c(argv[0], 's'); arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -162,41 +159,41 @@ main(int argc, char **argv) break; case ALLSW: - all = TRUE; + all = true; break; case NOALLSW: - all = FALSE; + all = false; break; case SHOWZERO: - showzero = TRUE; + showzero = true; break; case NOSHOWZERO: - showzero = FALSE; + showzero = false; break; case ALPHASW: - alphaOrder = TRUE; + alphaOrder = true; break; case NOALPHASW: - alphaOrder = FALSE; + alphaOrder = false; break; case NOFASTSW: case TOTALSW: - Total = TRUE; + Total = true; break; case FASTSW: case NOTOTALSW: - Total = FALSE; + Total = false; break; case RECURSE: - recurse = TRUE; + recurse = true; break; case NORECURSE: - recurse = FALSE; + recurse = false; break; } } else { @@ -235,7 +232,7 @@ main(int argc, char **argv) if ((cp = context_find(usequence)) && *cp) { char **ap, *dp; - dp = getcpy(cp); + dp = mh_xstrdup(cp); ap = brkstring (dp, " ", "\n"); for (; ap && *ap; ap++) svector_push_back (sequencesToDo, *ap); @@ -258,7 +255,7 @@ main(int argc, char **argv) * how to sort folders for output. */ -void +static void GetFolderOrder(void) { char *p, *s; @@ -290,7 +287,7 @@ GetFolderOrder(void) * Scan all the necessary folders */ -void +static void ScanFolders(void) { int i; @@ -339,7 +336,7 @@ ScanFolders(void) * the top of our search tree. */ -void +static void BuildFolderList(char *dirName, int searchdepth) { struct stat st; @@ -370,7 +367,7 @@ BuildFolderList(char *dirName, int searchdepth) * Recursive building of folder list */ -void +static void BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth) { char *base, name[PATH_MAX]; @@ -414,7 +411,7 @@ BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth) /* 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((unsigned char) *n); n++); + for (n = dp->d_name; isdigit((unsigned char)*n); n++); if (!*n) continue; strncpy (name, base, sizeof(name) - 2); @@ -442,7 +439,7 @@ BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth) * messages and the number of messages in each sequence. */ -int +static int AddFolder(char *name, int force) { unsigned int i; @@ -457,7 +454,7 @@ AddFolder(char *name, int force) /* Oops, error occurred. Record it and continue. */ AllocFolders(&folders, &nFoldersAlloced, nFolders + 1); f = &folders[nFolders++]; - f->name = getcpy(name); + f->name = mh_xstrdup(name); f->error = 1; f->priority = AssignPriority(f->name); return 0; @@ -493,7 +490,7 @@ AddFolder(char *name, int force) /* save general folder information */ AllocFolders(&folders, &nFoldersAlloced, nFolders + 1); f = &folders[nFolders++]; - f->name = getcpy(name); + f->name = mh_xstrdup(name); f->nMsgs = mp->nummsg; f->nSeq = ivector_create (0); f->private = ivector_create (0); @@ -520,7 +517,7 @@ AddFolder(char *name, int force) * Print the folder/sequence information */ -void +static void PrintFolders(void) { char tmpname[BUFSIZ]; @@ -530,7 +527,7 @@ PrintFolders(void) if (!Total) { for (i = 0; i < nFolders; i++) - printf("%s\n", folders[i].name); + puts(folders[i].name); return; } @@ -599,20 +596,19 @@ PrintFolders(void) * Put them in priority order. */ -int +static int CompareFolders(struct Folder *f1, struct Folder *f2) { if (!alphaOrder && f1->priority != f2->priority) return f1->priority - f2->priority; - else - return strcmp(f1->name, f2->name); + return strcmp(f1->name, f2->name); } /* * Make sure we have at least n folders allocated. */ -void +static void AllocFolders(struct Folder **f, int *nfa, int n) { if (n <= *nfa) @@ -630,7 +626,7 @@ AllocFolders(struct Folder **f, int *nfa, int n) * Return the priority for a name. The highest comes from an exact match. * After that, the longest match (then first) assigns the priority. */ -int +static int AssignPriority(char *name) { int i, ol, nl; @@ -668,7 +664,7 @@ do_readonly_folders (void) { int atrlen; char atrcur[BUFSIZ]; - register struct node *np; + struct node *np; snprintf (atrcur, sizeof(atrcur), "atr-%s-", current); atrlen = strlen (atrcur);