X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=uip%2Fshow.c;h=6e4f316899326d2caf3025b71a06c074d5b1d459;hb=41f62fc47ef6f2d223b7584b3bb912e65a630445;hp=1acaf70eed5208587ba358a00fe37846eef16676;hpb=2759257a7d892584d45cdaf5113da06a264e9c9c;p=mmh diff --git a/uip/show.c b/uip/show.c index 1acaf70..6e4f316 100644 --- a/uip/show.c +++ b/uip/show.c @@ -47,9 +47,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 +58,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; @@ -202,10 +199,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,45 +272,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); - /* 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); + /* 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"; + vec[++vecp] = NULL; + } + vec[vecp++] = concat("+", folder, NULL); + vec[vecp] = NULL; + vec[0] = mhbasename(proc); + execvp(proc, vec); + adios(proc, "unable to exec"); } - /* - ** If you are not using a nmh command as your "proc", then - ** add the path to the message names. - */ - 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);