X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fscan.c;h=f3e5a4fa14d9a6732f3576ef31f4eec052d426bb;hb=9f9bfa91d88b3ca4cd9206c1f2b17c6d13ebcaba;hp=4b0b3380091a387388fc6a6476abcbe0c104bd69;hpb=097c84b61603c4a4c5837f3dcc09c30a1e751702;p=mmh diff --git a/uip/scan.c b/uip/scan.c index 4b0b338..f3e5a4f 100644 --- a/uip/scan.c +++ b/uip/scan.c @@ -88,78 +88,78 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { switch (smatch(++cp, switches)) { - case AMBIGSW: - ambigsw(cp, switches); - done(1); - case UNKWNSW: - adios(NULL, "-%s unknown", cp); - - case HELPSW: - snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); - print_help(buf, switches, 1); - done(1); - case VERSIONSW: - print_version(invo_name); - done(1); - - case CLRSW: - clearflag++; - continue; - case NCLRSW: - clearflag = 0; - continue; - - case FORMSW: - if (!(form = *argp++) || *form == '-') - adios(NULL, "missing argument to %s", argp[-2]); - format = NULL; - continue; - case FMTSW: - if (!(format = *argp++) || - *format == '-') - adios(NULL, "missing argument to %s", argp[-2]); - form = NULL; - continue; - - case HEADSW: - hdrflag++; - continue; - case NHEADSW: - hdrflag = 0; - continue; - - case WIDTHSW: - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", argp[-2]); - width = atoi(cp); - continue; - case REVSW: - revflag++; - continue; - case NREVSW: - revflag = 0; - continue; - - case FILESW: - if (!(cp = *argp++) || (cp[0] == '-' && cp[1])) - adios(NULL, "missing argument to %s", argp[-2]); - if (strcmp(file = cp, "-")) - file = path(cp, TFILE); - continue; + case AMBIGSW: + ambigsw(cp, switches); + done(1); + case UNKWNSW: + adios(NULL, "-%s unknown", cp); + + case HELPSW: + snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); + print_help(buf, switches, 1); + done(1); + case VERSIONSW: + print_version(invo_name); + done(1); + + case CLRSW: + clearflag++; + continue; + case NCLRSW: + clearflag = 0; + continue; + + case FORMSW: + if (!(form = *argp++) || *form == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + format = NULL; + continue; + case FMTSW: + if (!(format = *argp++) || *format == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + form = NULL; + continue; + + case HEADSW: + hdrflag++; + continue; + case NHEADSW: + hdrflag = 0; + continue; + + case WIDTHSW: + if (!(cp = *argp++) || *cp == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + width = atoi(cp); + continue; + case REVSW: + revflag++; + continue; + case NREVSW: + revflag = 0; + continue; + + case FILESW: + if (!(cp = *argp++) || (cp[0] == '-' && cp[1])) + adios(NULL, "missing argument to %s", + argp[-2]); + if (strcmp(file = cp, "-")!=0) + file = getcpy(expanddir(cp)); + continue; } } if (*cp == '+' || *cp == '@') { if (folder) adios(NULL, "only one folder at a time!"); else - folder = pluspath(cp); + folder = getcpy(expandfol(cp)); } else - app_msgarg(&msgs, cp); + app_msgarg(&msgs, cp); } - if (!context_find("path")) - free(path("./", TFOLDER)); - /* ** Get new format string. Must be before chdir(). */ @@ -178,9 +178,8 @@ main(int argc, char **argv) if (strcmp(file, "-") == 0) { in = stdin; file = "stdin"; - } else { - if ((in = fopen(file, "r")) == NULL) - adios(file, "unable to open"); + } else if (!(in = fopen(file, "r"))) { + adios(file, "unable to open"); } #ifndef JLR @@ -205,10 +204,10 @@ main(int argc, char **argv) */ if (!msgs.size) - app_msgarg(&msgs, "all"); + app_msgarg(&msgs, seq_all); if (!folder) - folder = getfolder(FCUR); - maildir = m_maildir(folder); + folder = getcurfol(); + maildir = toabsdir(folder); if (chdir(maildir) == NOTOK) adios(maildir, "unable to change directory to"); @@ -227,25 +226,28 @@ main(int argc, char **argv) done(1); seq_setprev(mp); /* set the Previous-Sequence */ - context_replace(pfolder, folder); /* update current folder */ + context_replace(curfolder, folder); /* update current folder */ seq_save(mp); /* synchronize message sequences */ context_save(); /* save the context file */ /* - ** Get the sequence number for each sequence - ** specified by Unseen-Sequence + ** Get the sequence number for each `unseen' sequence */ - if ((cp = context_find(usequence)) && *cp) { + if (!(cp = context_find(usequence))) { + cp = seq_unseen; /* use default, if not set */ + } + if (*cp) { char **ap, *dp; dp = getcpy(cp); ap = brkstring(dp, " ", "\n"); - for (i = 0; ap && *ap; i++, ap++) + for (i = 0; ap && *ap; i++, ap++) { seqnum[i] = seq_getnum(mp, *ap); - + } num_unseen_seq = i; - if (dp) + if (dp) { free(dp); + } } ontty = isatty(fileno(stdout)); @@ -260,15 +262,7 @@ main(int argc, char **argv) msgnum += (revflag ? -1 : 1)) { if (is_selected(mp, msgnum)) { if ((in = fopen(cp = m_name(msgnum), "r")) == NULL) { -#if 0 - if (errno != EACCES) -#endif - admonish(cp, "unable to open message"); -#if 0 - else - printf("%*d unreadable\n", - DMAXFOLDER, msgnum); -#endif + admonish(cp, "unable to open message"); continue; } @@ -293,23 +287,17 @@ main(int argc, char **argv) switch (state = scan(in, msgnum, 0, nfs, width, msgnum == mp->curmsg, unseen, folder, 0L, 1)) { - case SCNMSG: - case SCNENC: - case SCNERR: - break; + case SCNMSG: + case SCNENC: + case SCNERR: + break; - default: - adios(NULL, "scan() botch(%d)", state); + default: + adios(NULL, "scan() botch(%d)", state); - case SCNEOF: -#if 0 - printf("%*d empty\n", DMAXFOLDER, - msgnum); -#else - advise(NULL, "message %d: empty", - msgnum); -#endif - break; + case SCNEOF: + advise(NULL, "message %d: empty", msgnum); + break; } hdrflag = 0; fclose(in);