X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fwhatnowproc.c;h=765ed8ac354c49296a904903b70b00dd8bb8157b;hp=583f133c87725874593f5b931ec43e0a8d4dca87;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/uip/whatnowproc.c b/uip/whatnowproc.c index 583f133..765ed8a 100644 --- a/uip/whatnowproc.c +++ b/uip/whatnowproc.c @@ -7,32 +7,26 @@ */ #include +#include /* ** This routine is used by comp, repl, forw, and dist to exec ** the "whatnowproc". It first sets up all the environment ** variables that the "whatnowproc" will need to check, and -** then execs the command. As an optimization, if the -** "whatnowproc" is the nmh command "whatnow" (typical case), -** it will call this routine directly without exec'ing it. +** then execs the command. */ - -/* from whatnowsbr.c */ -int WhatNow(int, char **); - - int -what_now(char *ed, int nedit, int use, char *file, char *altmsg, int dist, - struct msgs *mp, char *text, int inplace, char *cwd) +what_now(char *ed, int use, char *file, char *altmsg, int dist, + struct msgs *mp, char *text, char *cwd) { int found, k, msgnum, vecp; int len, buflen; - register char *bp; + char *bp; char buffer[BUFSIZ], *vec[MAXARGS]; vecp = 0; - vec[vecp++] = r1bindex(whatnowproc, '/'); + vec[vecp++] = mhbasename(whatnowproc); vec[vecp] = NULL; m_putenv("mhdraft", file); @@ -51,22 +45,20 @@ what_now(char *ed, int nedit, int use, char *file, char *altmsg, int dist, } else { unputenv("mhaltmsg"); } - if ((bp = getenv("mhaltmsg")))/* XXX */ - m_putenv("editalt", bp); snprintf(buffer, sizeof(buffer), "%d", dist); m_putenv("mhdist", buffer); - if (nedit) { - unputenv("mheditor"); + if (!ed) { + m_putenv("mheditor", defaulteditor); + } else if (*ed) { + m_putenv("mheditor", ed); } else { - m_putenv("mheditor", ed ? ed : (ed = context_find("editor")) ? - ed : defaulteditor); + unputenv("mheditor"); } snprintf(buffer, sizeof(buffer), "%d", use); m_putenv("mhuse", buffer); unputenv("mhmessages"); unputenv("mhannotate"); - unputenv("mhinplace"); if (text && mp && !is_readonly(mp)) { found = 0; @@ -94,8 +86,6 @@ what_now(char *ed, int nedit, int use, char *file, char *altmsg, int dist, if (found) { m_putenv("mhmessages", buffer); m_putenv("mhannotate", text); - snprintf(buffer, sizeof(buffer), "%d", inplace); - m_putenv("mhinplace", buffer); } } @@ -105,15 +95,6 @@ what_now(char *ed, int nedit, int use, char *file, char *altmsg, int dist, if (cwd) chdir(cwd); - /* - ** If the "whatnowproc" is the nmh command "whatnow", - ** we run it internally, rather than exec'ing it. - */ - if (strcmp(vec[0], "whatnow") == 0) { - WhatNow(vecp, vec); - done(0); - } - execvp(whatnowproc, vec); fprintf(stderr, "unable to exec "); perror(whatnowproc);