X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fshow.c;h=08a9b31cefc25c31295db3df48fe7b8e46e08246;hp=38bb4b535597b41b455600bef31305325ec087db;hb=fb0594cb913cab5e14e2c295b79eb48cc675bbbf;hpb=58160ee7bcee7dcc7dbf8e2d5377009e48bcf40b diff --git a/uip/show.c b/uip/show.c index 38bb4b5..08a9b31 100644 --- a/uip/show.c +++ b/uip/show.c @@ -23,21 +23,17 @@ static struct swit switches[] = { { "form formfile", 0 }, #define PROGSW 5 { "moreproc program", 0 }, -#define NPROGSW 6 - { "nomoreproc", 0 }, -#define LENSW 7 - { "length lines", 0 }, -#define WIDTHSW 8 +#define WIDTHSW 6 { "width columns", 0 }, -#define SHOWSW 9 +#define SHOWSW 7 { "showproc program", 0 }, -#define SHOWMIMESW 10 +#define SHOWMIMESW 8 { "showmimeproc program", 0 }, -#define FILESW 11 - { "file file", -4 }, /* interface from showfile */ -#define VERSIONSW 12 +#define FILESW 9 + { "file file", -4 }, /* interface from lproc (whatnow) */ +#define VERSIONSW 10 { "version", 0 }, -#define HELPSW 13 +#define HELPSW 11 { "help", 0 }, { NULL, 0 } }; @@ -47,9 +43,6 @@ static struct swit switches[] = { */ static int is_nontext(char *); -/* prototype from mhlsbr.c */ -int mhl(int, char **); - #define SHOW 0 #define NEXT 1 #define PREV 2 @@ -61,7 +54,7 @@ main(int argc, char **argv) int headersw = 1, msgp = 0; int checkmime = 1, mime; int vecp = 1, procp = 1, mode = SHOW, msgnum; - char *cp, *maildir, *file = NULL, *folder = NULL, *proc; + char *cp, *file = NULL, *folder = NULL, *proc; char buf[BUFSIZ], **argp, **arguments; char *msgs[MAXARGS], *vec[MAXARGS]; struct msgs *mp = NULL; @@ -89,7 +82,6 @@ main(int argc, char **argv) ambigsw(cp, switches); done(1); case UNKWNSW: - case NPROGSW: vec[vecp++] = --cp; continue; @@ -129,7 +121,6 @@ usage: continue; case PROGSW: - case LENSW: case WIDTHSW: vec[vecp++] = --cp; if (!(cp = *argp++) || *cp == '-') @@ -202,10 +193,6 @@ usage: if (!folder) folder = getcurfol(); - maildir = toabsdir(folder); - - if (chdir(maildir) == NOTOK) - adios(maildir, "unable to change directory to"); /* read folder and create message structure */ if (!(mp = folder_read(folder))) @@ -279,61 +266,31 @@ go_to_it: ; } /* Set the "proc" */ - if (mime) - proc = showmimeproc; - else - proc = showproc; + proc = (mime) ? showmimeproc : showproc; if (folder && !file) m_putenv("mhfolder", folder); - /* - ** For backward compatibility, if the "proc" is mhn, - ** then add "-show" option. Add "-file" if showing - ** file. - */ - if (strcmp(mhbasename(proc), "mhn") == 0) { + /* Special-cased because mhshow takes msg not files args. */ + if (strcmp(mhbasename(proc), "mhshow")==0) { if (file) { vec[vecp] = vec[vecp - 1]; vec[vecp - 1] = "-file"; - vecp++; + vec[++vecp] = NULL; } - vec[vecp++] = "-show"; + vec[vecp++] = concat("+", folder, NULL); vec[vecp] = NULL; + vec[0] = mhbasename(proc); + execvp(proc, vec); + adios(proc, "unable to exec"); } - /* If the "proc" is "mhshow", add "-file" if showing file. */ - if (strcmp(mhbasename(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 (strcmp(mhbasename(proc), "mhl") == 0) { - vec[0] = "mhl"; - mhl(vecp, vec); - done(0); - } - - /* - ** 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(mhbasename(proc), "mhl")==0 - && !file - && chdir(maildir = - concat(toabsdir("+"), "/", NULL)) != NOTOK) { - mp->foldpath = concat(mp->foldpath, "/", NULL); - cp = (strncmp(mp->foldpath, maildir, strlen(maildir))==0) ? - mp->foldpath + strlen(maildir) : - mp->foldpath; - for (msgnum = procp; msgnum < vecp; msgnum++) - vec[msgnum] = concat(cp, vec[msgnum], NULL); + /* Add the path to the message names. */ + if (!file) { + for (msgnum = procp; msgnum < vecp; msgnum++) { + vec[msgnum] = concat(mp->foldpath, "/", + vec[msgnum], NULL); + } } vec[0] = mhbasename(proc);