X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fshowfile.c;h=594b269f2cbc8375f2acd220d0be871d43c18850;hp=c099c1cdb87f75b734a8338580145c8091b59a9e;hb=0073224c28bf81dad1812d406bb9915b24b23eb6;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68 diff --git a/sbr/showfile.c b/sbr/showfile.c index c099c1c..594b269 100644 --- a/sbr/showfile.c +++ b/sbr/showfile.c @@ -1,69 +1,66 @@ - /* - * showfile.c -- invoke the `lproc' command - * - * $Id$ - * - * 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. - */ +** showfile.c -- invoke the `lproc' command +** +** 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 int -showfile (char **arg, char *file) +showfile(char **arg, char *file) { - pid_t pid; - int isdraft, vecp; - char *vec[MAXARGS]; + pid_t pid; + int isdraft, vecp; + char *vec[MAXARGS]; - context_save(); /* save the context file */ - fflush(stdout); + context_save(); /* save the context file */ + fflush(stdout); - /* - * If you have your lproc listed as "mhl", - * then really invoked the mhlproc instead - * (which is usually mhl anyway). - */ - if (!strcmp (r1bindex (lproc, '/'), "mhl")) - lproc = mhlproc; + /* + ** If you have your lproc listed as "mhl", + ** then really invoked the mhlproc instead + ** (which is usually mhl anyway). + */ + if (strcmp(mhbasename(lproc), "mhl")==0) + lproc = mhlproc; - switch (pid = vfork()) { - case -1: - /* fork error */ - advise ("fork", "unable to"); - return 1; + switch (pid = fork()) { + case -1: + /* fork error */ + advise("fork", "unable to"); + return 1; - case 0: - /* child */ - vecp = 0; - vec[vecp++] = r1bindex (lproc, '/'); - isdraft = 1; - if (arg) { - while (*arg) { - if (**arg != '-') - isdraft = 0; - vec[vecp++] = *arg++; - } - } - if (isdraft) { - if (!strcmp (vec[0], "show")) - vec[vecp++] = "-file"; - vec[vecp++] = file; - } - vec[vecp] = NULL; + case 0: + /* child */ + vecp = 0; + vec[vecp++] = mhbasename(lproc); + isdraft = 1; + if (arg) { + while (*arg) { + if (**arg != '-') + isdraft = 0; + vec[vecp++] = *arg++; + } + } + if (isdraft) { + if (strcmp(vec[0], "show")==0) + vec[vecp++] = "-file"; + vec[vecp++] = file; + } + vec[vecp] = NULL; - execvp (lproc, vec); - fprintf (stderr, "unable to exec "); - perror (lproc); - _exit (-1); + execvp(lproc, vec); + fprintf(stderr, "unable to exec "); + perror(lproc); + _exit(-1); - default: - /* parent */ - return (pidwait (pid, -1) & 0377 ? 1 : 0); - } + default: + /* parent */ + return (pidwait(pid, -1) & 0377 ? 1 : 0); + } - return 1; /* NOT REACHED */ + return 1; /* NOT REACHED */ }