X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fshow.c;h=6c795cae4cb99cf5a2c60720781425fe8fdfa12f;hb=ced6090a330d3d83d0bce709f756aa3d7d65fea4;hp=eda19cacdd1b82605eb5107544722851351baf5a;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1;p=mmh diff --git a/uip/show.c b/uip/show.c index eda19ca..6c795ca 100644 --- a/uip/show.c +++ b/uip/show.c @@ -1,10 +1,10 @@ /* - * show.c -- show/list messages - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** show.c -- show/list messages +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #include #include @@ -35,20 +35,18 @@ static struct swit switches[] = { { "showmimeproc program", 0 }, #define NSHOWSW 11 { "noshowproc", 0 }, -#define DRFTSW 12 - { "draft", 0 }, -#define FILESW 13 +#define FILESW 12 { "file file", -4 }, /* interface from showfile */ -#define VERSIONSW 14 +#define VERSIONSW 13 { "version", 0 }, -#define HELPSW 15 +#define HELPSW 14 { "help", 0 }, { NULL, 0 } }; /* - * static prototypes - */ +** static prototypes +*/ static int is_nontext(char *); /* prototype from mhlsbr.c */ @@ -62,9 +60,9 @@ int mhl (int, char **); int main (int argc, char **argv) { - int draftsw = 0, headersw = 1, msgp = 0; + int headersw = 1, msgp = 0; int nshow = 0, checkmime = 1, mime; - int vecp = 1, procp = 1, isdf = 0, mode = SHOW, msgnum; + int vecp = 1, procp = 1, mode = SHOW, msgnum; char *cp, *maildir, *file = NULL, *folder = NULL, *proc; char buf[BUFSIZ], **argp, **arguments; char *msgs[MAXARGS], *vec[MAXARGS]; @@ -98,29 +96,19 @@ main (int argc, char **argv) continue; case HELPSW: - snprintf (buf, sizeof(buf), - "%s [+folder] %s[switches] [switches for showproc]", - invo_name, mode == SHOW ? "[msgs] ": ""); + snprintf (buf, sizeof(buf), "%s [+folder] %s[switches] [switches for showproc]", invo_name, mode == SHOW ? "[msgs] ": ""); print_help (buf, switches, 1); done (1); case VERSIONSW: print_version(invo_name); done (1); - case DRFTSW: - if (file) - adios (NULL, "only one file at a time!"); - draftsw++; - if (mode == SHOW) - continue; -usage: - adios (NULL, - "usage: %s [+folder] [switches] [switches for showproc]", - invo_name); case FILESW: if (mode != SHOW) - goto usage; - if (draftsw || file) +usage: + adios (NULL, "usage: %s [+folder] [switches] [switches for showproc]", invo_name); + + if (file) adios (NULL, "only one file at a time!"); if (!(cp = *argp++) || *cp == '-') adios (NULL, "missing argument to %s", argp[-2]); @@ -177,11 +165,10 @@ usage: adios (NULL, "only one folder at a time!"); else folder = pluspath (cp); + } else if (mode != SHOW) { + goto usage; } else { - if (mode != SHOW) - goto usage; - else - msgs[msgp++] = cp; + msgs[msgp++] = cp; } } procp = vecp; @@ -189,18 +176,16 @@ usage: if (!context_find ("path")) free (path ("./", TFOLDER)); - if (draftsw || file) { + if (file) { if (msgp) adios (NULL, "only one file at a time!"); - vec[vecp++] = draftsw - ? getcpy (m_draft (folder, msgp ? msgs[0] : NULL, 1, &isdf)) - : file; + vec[vecp++] = file; goto go_to_it; } #ifdef WHATNOW - if (!msgp && !folder && mode == SHOW && (cp = getenv ("mhdraft")) && *cp) { - draftsw++; + if (!msgp && !folder && mode == SHOW && + (cp = getenv ("mhdraft")) && *cp) { vec[vecp++] = cp; goto go_to_it; } @@ -241,10 +226,10 @@ usage: done (1); /* - * Set the SELECT_UNSEEN bit for all the SELECTED messages, - * since we will use that as a tag to know which messages - * to remove from the "unseen" sequence. - */ + ** Set the SELECT_UNSEEN bit for all the SELECTED messages, + ** since we will use that as a tag to know which messages + ** to remove from the "unseen" sequence. + */ for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) if (is_selected(mp, msgnum)) set_unseen (mp, msgnum); @@ -253,7 +238,8 @@ usage: seq_setunseen (mp, 1); /* unset the Unseen-Sequence */ if (mp->numsel > MAXARGS - 2) - adios (NULL, "more than %d messages for show exec", MAXARGS - 2); + adios (NULL, "more than %d messages for show exec", + MAXARGS - 2); for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) if (is_selected(mp, msgnum)) @@ -273,23 +259,28 @@ go_to_it: ; vec[vecp] = NULL; /* - * Decide which "proc" to use - */ + ** Decide which "proc" to use + */ mime = 0; if (nshow) { proc = catproc; } else { /* check if any messages are non-text MIME messages */ if (checkmime && !getenv ("NOMHNPROC")) { - if (!draftsw && !file) { - /* loop through selected messages and check for MIME */ - for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) + if (!file) { + /* + ** loop through selected messages + ** and check for MIME + */ + for (msgnum = mp->lowsel; + msgnum <= mp->hghsel; + msgnum++) if (is_selected (mp, msgnum) && is_nontext (m_name (msgnum))) { mime = 1; break; } } else { - /* check the file or draft for MIME */ + /* check the file for MIME */ if (is_nontext (vec[vecp - 1])) mime = 1; } @@ -302,16 +293,16 @@ go_to_it: ; proc = showproc; } - if (folder && !draftsw && !file) + if (folder && !file) m_putenv ("mhfolder", folder); /* - * For backward compatibility, if the "proc" is mhn, - * then add "-show" option. Add "-file" if showing - * file or draft. - */ + ** For backward compatibility, if the "proc" is mhn, + ** then add "-show" option. Add "-file" if showing + ** file. + */ if (strcmp (r1bindex (proc, '/'), "mhn") == 0) { - if (draftsw || file) { + if (file) { vec[vecp] = vec[vecp - 1]; vec[vecp - 1] = "-file"; vecp++; @@ -320,18 +311,17 @@ go_to_it: ; vec[vecp] = NULL; } - /* If the "proc" is "mhshow", add "-file" if showing file or draft. - */ - if (strcmp (r1bindex (proc, '/'), "mhshow") == 0 && (draftsw || file) ) { + /* If the "proc" is "mhshow", add "-file" if showing file. */ + if (strcmp (r1bindex (proc, '/'), "mhshow") == 0 && file ) { vec[vecp] = vec[vecp - 1]; vec[vecp - 1] = "-file"; vec[++vecp] = NULL; } /* - * If "proc" is mhl, then run it internally - * rather than exec'ing it. - */ + ** If "proc" is mhl, then run it internally + ** rather than exec'ing it. + */ if (strcmp (r1bindex (proc, '/'), "mhl") == 0) { vec[0] = "mhl"; mhl (vecp, vec); @@ -339,14 +329,14 @@ go_to_it: ; } /* - * If you are not using a nmh command as your "proc", then - * add the path to the message names. Currently, we are just - * checking for mhn here, since we've already taken care of mhl. - */ + ** If you are not using a nmh command as your "proc", then + ** add the path to the message names. Currently, we are just + ** checking for mhn here, since we've already taken care of mhl. + */ if (!strcmp (r1bindex (proc, '/'), "mhl") - && !draftsw && !file - && chdir (maildir = concat (m_maildir (""), "/", NULL)) != NOTOK) { + && chdir (maildir = + concat (m_maildir (""), "/", NULL)) != NOTOK) { mp->foldpath = concat (mp->foldpath, "/", NULL); cp = ssequal (maildir, mp->foldpath) ? mp->foldpath + strlen (maildir) @@ -362,8 +352,8 @@ go_to_it: ; } /* - * Check if a message or file contains any non-text parts - */ +** Check if a message or file contains any non-text parts +*/ static int is_nontext (char *msgnam) { @@ -382,15 +372,16 @@ is_nontext (char *msgnam) case FLDPLUS: case FLDEOF: /* - * Check Content-Type field - */ + ** Check Content-Type field + */ if (!mh_strcasecmp (name, TYPE_FIELD)) { int passno; char c; cp = add (buf, NULL); while (state == FLDPLUS) { - state = m_getfld (state, name, buf, sizeof(buf), fp); + state = m_getfld (state, name, buf, + sizeof(buf), fp); cp = add (buf, cp); } bp = cp; @@ -439,13 +430,15 @@ invalid: if (!*bp) goto invalid; if (passno > 1) { - if ((result = (mh_strcasecmp (bp, "plain") != 0))) + if ((result = (mh_strcasecmp (bp, + "plain") != 0))) goto out; *dp = c; for (dp++; isspace (*dp); dp++) continue; if (*dp) { - if ((result = !uprf (dp, "charset"))) + if ((result = !uprf (dp, + "charset"))) goto out; dp += sizeof("charset") - 1; while (isspace (*dp)) @@ -488,8 +481,8 @@ out: } /* - * Check Content-Transfer-Encoding field - */ + ** Check Content-Transfer-Encoding field + */ if (!mh_strcasecmp (name, ENCODING_FIELD)) { cp = add (buf, NULL); while (state == FLDPLUS) { @@ -514,17 +507,18 @@ out: } /* - * Just skip the rest of this header - * field and go to next one. - */ + ** Just skip the rest of this header + ** field and go to next one. + */ while (state == FLDPLUS) - state = m_getfld (state, name, buf, sizeof(buf), fp); + state = m_getfld(state, name, buf, sizeof(buf), + fp); break; /* - * We've passed the message header, - * so message is just text. - */ + ** We've passed the message header, + ** so message is just text. + */ default: fclose (fp); return 0;