From: markus schnalke Date: Fri, 10 Feb 2012 13:25:28 +0000 (+0100) Subject: show: Never call internal mhl(); always construct absolute argument paths. X-Git-Tag: mmh-thesis-end~320 X-Git-Url: http://git.marmaro.de/?p=mmh;a=commitdiff_plain;h=2d2016f0dfc9e036549ff035f0ae897c9b2d5fe4;hp=0b40f7c1c35770622511eda71ec5353784ea1dc6 show: Never call internal mhl(); always construct absolute argument paths. We don't want those fat binaries that call internal versions of unrelated tools. I.e. we do want modularization! No, fork() and exec() aren't too expensive ... but heavily interweaved code is! --- diff --git a/man/show.man1 b/man/show.man1 index 93ab455..47cf7d0 100644 --- a/man/show.man1 +++ b/man/show.man1 @@ -207,26 +207,6 @@ while it is showing \*(lqunseen\*(rq messages. .PP If your .I showproc -is -.B mhl -(the default), then -.B show -uses -a built\-in -.BR mhl : -it does not actually run the -.B mhl -program. -Hence, if you define your own -.B showproc , -don't call it -.B mhl -since -.B show -won't run it. -.PP -If your -.I showproc is the pager .BR more , then avoid running diff --git a/uip/Makefile.in b/uip/Makefile.in index 711fd39..db56528 100644 --- a/uip/Makefile.in +++ b/uip/Makefile.in @@ -208,8 +208,8 @@ sendfiles: sendfiles.sh cp sendfiles.sh sendfiles chmod +x sendfiles -show: show.o mhlsbr.o termsbr.o $(LOCALLIBS) - $(LINK) show.o mhlsbr.o termsbr.o $(LINKLIBS) $(TERMLIB) +show: show.o $(LOCALLIBS) + $(LINK) show.o $(LINKLIBS) slocal.o: slocal.c $(COMPILE2) $(srcdir)/slocal.c diff --git a/uip/show.c b/uip/show.c index 1acaf70..8609293 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))) @@ -294,30 +287,12 @@ go_to_it: ; 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. - */ - 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);