static void DisplayMsgHeader(CT, char *);
static int show_switch(CT, int);
static int show_content(CT, int);
-static int show_content_aux2(CT, int, char *, char *, int, int, int, int);
+static int show_content_aux2(CT, int, char *, char *, int, int, int);
static int show_text(CT, int);
static int show_multi(CT, int);
static int show_multi_internal(CT, int);
/* NOTREACHED */
default:
- xpid = -child_id;
+ xpid = child_id;
break;
}
}
/*
** Parse the display string for displaying generic content
*/
-
int
show_content_aux(CT ct, int alternate, char *cp, char *cracked)
{
int fd, len, buflen, quoted;
- int xstdin, xlist, xtty;
+ int xstdin, xlist;
char *bp, *pp, *file, buffer[BUFSIZ];
CI ci = &ct->c_ctinfo;
xlist = 0;
xstdin = 0;
- xtty = 0;
if (cracked) {
strncpy(buffer, cp, sizeof(buffer));
}
break;
- case 'e':
- /* exclusive execution */
- xtty = 1;
- break;
-
case 'F':
- /* %e, %f, and stdin is terminal not content */
+ /* %f, and stdin is terminal not content */
xstdin = 1;
- xtty = 1;
/* and fall... */
case 'f':
pp = bp;
break;
- case 'p':
case 'l':
/*
** display listing prior to displaying content
got_command:
return show_content_aux2(ct, alternate, cracked, buffer,
- fd, xlist, xstdin, xtty);
+ fd, xlist, xstdin);
}
/*
** Routine to actually display the content
*/
-
static int
show_content_aux2(CT ct, int alternate, char *cracked,
- char *buffer, int fd, int xlist, int xstdin, int xtty)
+ char *buffer, int fd, int xlist, int xstdin)
{
pid_t child_id;
+ if (xpid) {
+ pidcheck(pidwait(xpid, NOTOK));
+ xpid = 0;
+ }
+
if (debugsw || cracked) {
fflush(stdout);
fprintf(stderr, " using command %s\n", buffer);
}
- if (xpid < 0 || (xtty && xpid)) {
- if (xpid < 0)
- xpid = -xpid;
- pidcheck(pidwait(xpid, NOTOK));
- xpid = 0;
- }
-
if (xlist) {
if (ct->c_type == CT_MULTIPART)
list_content(ct, -1, 1, 0, 0);
show_multi_aux(CT ct, int alternate, char *cp)
{
int len, buflen, quoted;
- int xlist, xtty;
+ int xlist;
char *bp, *pp, *file, buffer[BUFSIZ];
struct multipart *m = (struct multipart *) ct->c_ctparams;
struct part *part;
}
xlist = 0;
- xtty = 0;
/* get buffer ready to go */
bp = buffer;
}
break;
- case 'e':
- /* exclusive execution */
- xtty = 1;
- break;
-
case 'F':
- /* %e and %f */
- xtty = 1;
- /* and fall... */
-
case 'f':
/* insert filename(s) containing content */
{
}
break;
- case 'p':
case 'l':
/*
** display listing prior to displaying content
}
return show_content_aux2(ct, alternate, NULL, buffer,
- NOTOK, xlist, 0, xtty);
+ NOTOK, xlist, 0);
}
/* default method for message/rfc822 */
if (ct->c_subtype == MESSAGE_RFC822) {
- cp = (ct->c_showproc = getcpy("%pshow -file '%F'"));
+ cp = (ct->c_showproc = getcpy("%lshow -file %F"));
return show_content_aux(ct, alternate, cp, NULL);
}