X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Ffolder.c;h=06788b28eb210d9a448f34b764ce4925595bc987;hp=a5326c176ca9ca1d42aa772c09ee1f6b0bb505af;hb=714b5c530ece27ea2835a313013f5b770163403c;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4 diff --git a/uip/folder.c b/uip/folder.c index a5326c1..06788b2 100644 --- a/uip/folder.c +++ b/uip/folder.c @@ -104,15 +104,15 @@ static int maxFolderInfo; /* ** static prototypes */ -static int get_folder_info (char *, char *); +static int get_folder_info(char *, char *); static crawl_callback_t get_folder_info_callback; -static void print_folders (void); -static int sfold (struct msgs *, char *); -static void readonly_folders (void); +static void print_folders(void); +static int sfold(struct msgs *, char *); +static void readonly_folders(void); int -main (int argc, char **argv) +main(int argc, char **argv) { int printsw = 0, listsw = 0; int pushsw = 0, popsw = 0; @@ -122,7 +122,7 @@ main (int argc, char **argv) #ifdef LOCALE setlocale(LC_ALL, ""); #endif - invo_name = r1bindex (argv[0], '/'); + invo_name = r1bindex(argv[0], '/'); /* read user profile/context */ context_read(); @@ -131,29 +131,28 @@ 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') + if (argv[0][strlen(argv[0]) - 1] == 's') all = 1; - arguments = getarguments (invo_name, argc, argv, 1); + arguments = getarguments(invo_name, argc, argv, 1); argp = arguments; while ((cp = *argp++)) { if (*cp == '-') { - switch (smatch (++cp, switches)) { + switch (smatch(++cp, switches)) { case AMBIGSW: - ambigsw (cp, switches); - done (1); + ambigsw(cp, switches); + done(1); case UNKWNSW: - adios (NULL, "-%s unknown", cp); + adios(NULL, "-%s unknown", cp); case HELPSW: - snprintf (buf, sizeof(buf), "%s [+folder] [msg] [switches]", - invo_name); - print_help (buf, switches, 1); - done (1); + snprintf(buf, sizeof(buf), "%s [+folder] [msg] [switches]", invo_name); + print_help(buf, switches, 1); + done(1); case VERSIONSW: print_version(invo_name); - done (1); + done(1); case ALLSW: all = 1; @@ -240,20 +239,20 @@ main (int argc, char **argv) } if (*cp == '+' || *cp == '@') { if (argfolder) - adios (NULL, "only one folder at a time!"); + adios(NULL, "only one folder at a time!"); else - argfolder = pluspath (cp); + argfolder = pluspath(cp); } else { if (msg) - adios (NULL, "only one (current) message at a time!"); + adios(NULL, "only one (current) message at a time!"); else msg = cp; } } - if (!context_find ("path")) - free (path ("./", TFOLDER)); - nmhdir = concat (m_maildir (""), "/", NULL); + if (!context_find("path")) + free(path("./", TFOLDER)); + nmhdir = concat(m_maildir(""), "/", NULL); /* ** If we aren't working with the folder stack @@ -267,77 +266,76 @@ main (int argc, char **argv) if (!argfolder) { /* If no folder is given, the current folder and */ /* the top of the folder stack are swapped. */ - if ((cp = context_find (stack))) { - dp = getcpy (cp); - ap = brkstring (dp, " ", "\n"); + if ((cp = context_find(stack))) { + dp = getcpy(cp); + ap = brkstring(dp, " ", "\n"); argfolder = getcpy(*ap++); } else { - adios (NULL, "no other folder"); + adios(NULL, "no other folder"); } - for (cp = getcpy (getfolder (1)); *ap; ap++) - cp = add (*ap, add (" ", cp)); - free (dp); - context_replace (stack, cp); /* update folder stack */ + for (cp = getcpy(getfolder(1)); *ap; ap++) + cp = add(*ap, add(" ", cp)); + free(dp); + context_replace(stack, cp); /* update folder stack */ } else { /* update folder stack */ - context_replace (stack, - (cp = context_find (stack)) - ? concat (getfolder (1), " ", cp, NULL) - : getcpy (getfolder (1))); + context_replace(stack, (cp = context_find (stack)) ? + concat(getfolder(1), " ", cp, NULL) : + getcpy(getfolder(1))); } } /* Popping a folder off of the folder stack */ if (popsw) { if (argfolder) - adios (NULL, "sorry, no folders allowed with -pop"); - if ((cp = context_find (stack))) { - dp = getcpy (cp); - ap = brkstring (dp, " ", "\n"); + adios(NULL, "sorry, no folders allowed with -pop"); + if ((cp = context_find(stack))) { + dp = getcpy(cp); + ap = brkstring(dp, " ", "\n"); argfolder = getcpy(*ap++); } else { - adios (NULL, "folder stack empty"); + adios(NULL, "folder stack empty"); } if (*ap) { /* if there's anything left in the stack */ - cp = getcpy (*ap++); + cp = getcpy(*ap++); for (; *ap; ap++) - cp = add (*ap, add (" ", cp)); - context_replace (stack, cp); /* update folder stack */ + cp = add(*ap, add(" ", cp)); + context_replace(stack, cp); /* update folder stack */ } else { /* delete folder stack entry from context */ - context_del (stack); + context_del(stack); } - free (dp); + free(dp); } if (pushsw || popsw) { cp = m_maildir(argfolder); - if (access (cp, F_OK) == NOTOK) - adios (cp, "unable to find folder"); + if (access(cp, F_OK) == NOTOK) + adios(cp, "unable to find folder"); /* update current folder */ - context_replace (pfolder, argfolder); - context_save (); /* save the context file */ + context_replace(pfolder, argfolder); + context_save(); /* save the context file */ argfolder = NULL; } /* Listing the folder stack */ if (listsw) { - printf ("%s", argfolder ? argfolder : getfolder (1)); - if ((cp = context_find (stack))) { - dp = getcpy (cp); - for (ap = brkstring (dp, " ", "\n"); *ap; ap++) - printf (" %s", *ap); - free (dp); + printf("%s", argfolder ? argfolder : getfolder(1)); + if ((cp = context_find(stack))) { + dp = getcpy(cp); + for (ap = brkstring(dp, " ", "\n"); *ap; ap++) + printf(" %s", *ap); + free(dp); } - printf ("\n"); + printf("\n"); if (!printsw) - done (0); + done(0); } /* Allocate initial space to record folder information */ maxFolderInfo = CRAWL_NUMFOLDERS; - fi = mh_xmalloc (maxFolderInfo * sizeof(*fi)); + fi = mh_xmalloc(maxFolderInfo * sizeof(*fi)); /* ** Scan the folders @@ -350,40 +348,43 @@ main (int argc, char **argv) ** change directory to base of nmh directory for ** crawl_folders */ - if (chdir (nmhdir) == NOTOK) - adios (nmhdir, "unable to change directory to"); + if (chdir(nmhdir) == NOTOK) + adios(nmhdir, "unable to change directory to"); if (!argfolder) { if (msg) - admonish (NULL, "no folder given for message %s", msg); - readonly_folders (); /* do any readonly folders */ - strncpy (folder, (cp = context_find (pfolder)) ? cp : "", sizeof(folder)); - crawl_folders (".", get_folder_info_callback, NULL); + admonish(NULL, "no folder given for message %s", msg); + readonly_folders(); /* do any readonly folders */ + strncpy(folder, (cp = context_find(pfolder)) ? + cp : "", sizeof(folder)); + crawl_folders(".", get_folder_info_callback, NULL); } else { - strncpy (folder, argfolder, sizeof(folder)); - if (get_folder_info (argfolder, msg)) { + strncpy(folder, argfolder, sizeof(folder)); + if (get_folder_info(argfolder, msg)) { /* update current folder */ - context_replace (pfolder, argfolder); - context_save (); + context_replace(pfolder, argfolder); + context_save(); } /* ** Since recurse wasn't done in get_folder_info(), ** we still need to list all level-1 sub-folders. */ if (!frecurse) - crawl_folders (folder, get_folder_info_callback, NULL); + crawl_folders(folder, get_folder_info_callback, + NULL); } } else { - strncpy (folder, argfolder ? argfolder : getfolder (1), sizeof(folder)); + strncpy(folder, argfolder ? argfolder : getfolder (1), + sizeof(folder)); /* ** Check if folder exists. If not, then see if ** we should create it, or just exit. */ - create_folder (m_maildir (folder), fcreat, done); + create_folder(m_maildir(folder), fcreat, done); - if (get_folder_info (folder, msg) && argfolder) { + if (get_folder_info(folder, msg) && argfolder) { /* update current folder */ - context_replace (pfolder, argfolder); + context_replace(pfolder, argfolder); } } @@ -392,13 +393,13 @@ main (int argc, char **argv) */ print_folders(); - context_save (); - done (0); + context_save(); + done(0); return 1; } static int -get_folder_info_body (char *fold, char *msg, boolean *crawl_children) +get_folder_info_body(char *fold, char *msg, boolean *crawl_children) { int i, retval = 1; struct msgs *mp = NULL; @@ -411,7 +412,7 @@ get_folder_info_body (char *fold, char *msg, boolean *crawl_children) */ if (total_folders >= maxFolderInfo) { maxFolderInfo += CRAWL_NUMFOLDERS; - fi = mh_xrealloc (fi, maxFolderInfo * sizeof(*fi)); + fi = mh_xrealloc(fi, maxFolderInfo * sizeof(*fi)); } fi[i].name = fold; @@ -426,20 +427,20 @@ get_folder_info_body (char *fold, char *msg, boolean *crawl_children) /* ** create message structure and get folder info */ - if (!(mp = folder_read (fold))) { - admonish (NULL, "unable to read folder %s", fold); + if (!(mp = folder_read(fold))) { + admonish(NULL, "unable to read folder %s", fold); return 0; } /* set the current message */ - if (msg && !sfold (mp, msg)) + if (msg && !sfold(mp, msg)) retval = 0; if (fpack) { - if (folder_pack (&mp, fverb) == -1) - done (1); - seq_save (mp); /* synchronize the sequences */ - context_save (); /* save the context file */ + if (folder_pack(&mp, fverb) == -1) + done(1); + seq_save(mp); /* synchronize the sequences */ + context_save(); /* save the context file */ } /* record info for this folder */ @@ -448,10 +449,10 @@ get_folder_info_body (char *fold, char *msg, boolean *crawl_children) fi[i].curmsg = mp->curmsg; fi[i].lowmsg = mp->lowmsg; fi[i].hghmsg = mp->hghmsg; - fi[i].others = other_files (mp); + fi[i].others = other_files(mp); } - folder_free (mp); /* free folder/message structure */ + folder_free(mp); /* free folder/message structure */ } *crawl_children = (frecurse && (fshort || fi[i].others) @@ -460,24 +461,24 @@ get_folder_info_body (char *fold, char *msg, boolean *crawl_children) } static boolean -get_folder_info_callback (char *fold, void *baton) +get_folder_info_callback(char *fold, void *baton) { boolean crawl_children; - get_folder_info_body (fold, NULL, &crawl_children); - fflush (stdout); + get_folder_info_body(fold, NULL, &crawl_children); + fflush(stdout); return crawl_children; } static int -get_folder_info (char *fold, char *msg) +get_folder_info(char *fold, char *msg) { boolean crawl_children; int retval; - retval = get_folder_info_body (fold, msg, &crawl_children); + retval = get_folder_info_body(fold, msg, &crawl_children); if (crawl_children) { - crawl_folders (fold, get_folder_info_callback, NULL); + crawl_folders(fold, get_folder_info_callback, NULL); } return retval; } @@ -487,7 +488,7 @@ return retval; */ static void -print_folders (void) +print_folders(void) { int i, len, hasempty = 0, curprinted; int maxlen = 0, maxnummsg = 0, maxlowmsg = 0; @@ -502,7 +503,7 @@ print_folders (void) */ for (i = 0; i < total_folders; i++) { /* length of folder name */ - len = strlen (fi[i].name); + len = strlen(fi[i].name); if (len > maxlen) maxlen = len; @@ -535,10 +536,10 @@ print_folders (void) if (fi[i].nummsg == 0) hasempty = 1; } - nummsgdigits = num_digits (maxnummsg); - lowmsgdigits = num_digits (maxlowmsg); - hghmsgdigits = num_digits (maxhghmsg); - curmsgdigits = num_digits (maxcurmsg); + nummsgdigits = num_digits(maxnummsg); + lowmsgdigits = num_digits(maxlowmsg); + hghmsgdigits = num_digits(maxhghmsg); + curmsgdigits = num_digits(maxcurmsg); if (hasempty && nummsgdigits < 2) nummsgdigits = 2; @@ -547,7 +548,7 @@ print_folders (void) ** Print the header */ if (fheader > 0 || (all && !fshort && fheader >= 0)) - printf ("%-*s %*s %-*s; %-*s %*s\n", + printf("%-*s %*s %-*s; %-*s %*s\n", maxlen+1, "FOLDER", nummsgdigits + 13, "# MESSAGES", lowmsgdigits + hghmsgdigits + 4, " RANGE", @@ -560,43 +561,47 @@ print_folders (void) if (all || fshort || ftotal < 1) { for (i = 0; i < total_folders; i++) { if (fshort) { - printf ("%s\n", fi[i].name); + printf("%s\n", fi[i].name); continue; } /* Add `+' to end of name, if folder is current */ - if (strcmp (folder, fi[i].name)) - snprintf (tmpname, sizeof(tmpname), "%s", fi[i].name); + if (strcmp(folder, fi[i].name)) + snprintf(tmpname, sizeof(tmpname), "%s", + fi[i].name); else - snprintf (tmpname, sizeof(tmpname), "%s+", fi[i].name); + snprintf(tmpname, sizeof(tmpname), "%s+", + fi[i].name); if (fi[i].error) { - printf ("%-*s is unreadable\n", maxlen+1, tmpname); + printf("%-*s is unreadable\n", maxlen+1, + tmpname); continue; } - printf ("%-*s ", maxlen+1, tmpname); + printf("%-*s ", maxlen+1, tmpname); curprinted = 0; /* remember if we print cur */ if (fi[i].nummsg == 0) { - printf ("has %*s messages%*s", - nummsgdigits, "no", - fi[i].others ? lowmsgdigits + hghmsgdigits + 5 : 0, ""); + printf("has %*s messages%*s", nummsgdigits, "no", fi[i].others ? lowmsgdigits + hghmsgdigits + 5 : 0, ""); } else { - printf ("has %*d message%s (%*d-%*d)", + printf("has %*d message%s (%*d-%*d)", nummsgdigits, fi[i].nummsg, - (fi[i].nummsg == 1) ? " " : "s", + (fi[i].nummsg == 1) ? + " " : "s", lowmsgdigits, fi[i].lowmsg, hghmsgdigits, fi[i].hghmsg); if (fi[i].curmsg >= fi[i].lowmsg && fi[i].curmsg <= fi[i].hghmsg) { curprinted = 1; - printf ("; cur=%*d", curmsgdigits, fi[i].curmsg); + printf("; cur=%*d", curmsgdigits, + fi[i].curmsg); } } if (fi[i].others) - printf (";%*s (others)", curprinted ? 0 : curmsgdigits + 6, ""); - printf (".\n"); + printf(";%*s (others)", curprinted ? + 0 : curmsgdigits + 6, ""); + printf(".\n"); } } @@ -605,13 +610,13 @@ print_folders (void) */ if (ftotal > 0 || (all && !fshort && ftotal >= 0)) { if (all) - printf ("\n"); - printf ("TOTAL = %d message%c in %d folder%s.\n", + printf("\n"); + printf("TOTAL = %d message%c in %d folder%s.\n", total_msgs, total_msgs != 1 ? 's' : ' ', total_folders, total_folders != 1 ? "s" : ""); } - fflush (stdout); + fflush(stdout); } /* @@ -619,20 +624,20 @@ print_folders (void) */ static int -sfold (struct msgs *mp, char *msg) +sfold(struct msgs *mp, char *msg) { /* parse the message range/sequence/name and set SELECTED */ - if (!m_convert (mp, msg)) + if (!m_convert(mp, msg)) return 0; if (mp->numsel > 1) { - admonish (NULL, "only one message at a time!"); + admonish(NULL, "only one message at a time!"); return 0; } - seq_setprev (mp); /* set the previous-sequence */ - seq_setcur (mp, mp->lowsel); /* set current message */ - seq_save (mp); /* synchronize message sequences */ - context_save (); /* save the context file */ + seq_setprev(mp); /* set the previous-sequence */ + seq_setcur(mp, mp->lowsel); /* set current message */ + seq_save(mp); /* synchronize message sequences */ + context_save(); /* save the context file */ return 1; } @@ -643,17 +648,17 @@ sfold (struct msgs *mp, char *msg) */ static void -readonly_folders (void) +readonly_folders(void) { int atrlen; char atrcur[BUFSIZ]; register struct node *np; - snprintf (atrcur, sizeof(atrcur), "atr-%s-", current); - atrlen = strlen (atrcur); + snprintf(atrcur, sizeof(atrcur), "atr-%s-", current); + atrlen = strlen(atrcur); for (np = m_defs; np; np = np->n_next) - if (ssequal (atrcur, np->n_name) - && !ssequal (nmhdir, np->n_name + atrlen)) - get_folder_info (np->n_name + atrlen, NULL); + if (ssequal(atrcur, np->n_name) + && !ssequal(nmhdir, np->n_name + atrlen)) + get_folder_info(np->n_name + atrlen, NULL); }