*/
static void
-process (char *folder, char *filename, int ofilen, int ofilec)
+process (char *folder, char *fname, int ofilen, int ofilec)
{
char *cp = NULL;
- char *fname = filename;
FILE *fp = NULL;
struct mcomp *c1;
struct stat st;
struct arglist *ap;
+ /* volatile to prevent "might be clobbered" warning from gcc: */
+ char *volatile fname2 = fname ? fname : "(stdin)";
switch (setjmp (env)) {
case OK:
return;
}
} else {
- fname = "(stdin)";
fp = stdin;
}
if (fstat(fileno(fp), &st) == 0) {
} else {
filesize = 0;
}
- cp = folder ? concat (folder, ":", fname, NULL) : getcpy (fname);
+ cp = folder ? concat (folder, ":", fname2, NULL) : getcpy (fname2);
if (ontty != PITTY)
SIGNAL (SIGINT, intrser);
mhlfile (fp, cp, ofilen, ofilec); /* FALL THROUGH! */
if ((p = (struct pqpair *) calloc ((size_t) 1, sizeof(*p))) == NULL)
adios (NULL, "unable to allocate pqpair memory");
- if ((mp = getm (cp, NULL, 0, AD_NAME, error)) == NULL) {
+ if ((mp = getm (cp, NULL, 0, error, sizeof(error))) == NULL) {
p->pq_text = getcpy (cp);
p->pq_error = getcpy (error);
} else {
* buffers that we have duplicated from the parent.
*/
_exit(0);
- break;
case -1:
adios(NULL, "Unable to fork for filter writer process");
break;