From: Keith Bostic Date: Wed, 26 Nov 1986 04:37:18 +0000 (-0800) Subject: date and time created 86/11/25 12:37:18 by bostic X-Git-Tag: BSD-4_3-Snapshot-Development~388 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/85ca7091bb5fa33c404a9abdcbf9183ca3b3bd0c?ds=inline date and time created 86/11/25 12:37:18 by bostic SCCS-vsn: libexec/bugfiler/reply.c 5.1 --- diff --git a/usr/src/libexec/bugfiler/reply.c b/usr/src/libexec/bugfiler/reply.c new file mode 100644 index 0000000000..041b954216 --- /dev/null +++ b/usr/src/libexec/bugfiler/reply.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1986 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef lint +static char sccsid[] = "@(#)reply.c 5.1 (Berkeley) 86/11/25"; +#endif not lint + +#include +#include +#include + +extern HEADER mailhead[]; /* mail headers */ + +/* + * reply -- + * tell the user we got their bug report + */ +reply() +{ + register char *C, /* traveling pointer */ + *to; /* who we're replying to */ + register int afd, /* ack file descriptor */ + rval; /* return value */ + FILE *pf, /* pipe pointer */ + *popen(); + char *mktemp(), *strcpy(), *index(); + + if (mailhead[RPLY_TAG].found) { + for (C = mailhead[RPLY_TAG].line + mailhead[RPLY_TAG].len;*C != '\n' && (*C == ' ' || *C == '\t');++C); + if (*C) + goto gotone; + } + if (mailhead[FROM_TAG].found) { + for (C = mailhead[FROM_TAG].line + mailhead[FROM_TAG].len;*C != '\n' && (*C == ' ' || *C == '\t');++C); + if (*C) + goto gotone; + } + if (mailhead[CFROM_TAG].found) { + for (C = mailhead[CFROM_TAG].line + mailhead[CFROM_TAG].len;*C != '\n' && (*C == ' ' || *C == '\t');++C); + if (*C) + goto gotone; + } + return; + + /* if it's a foo , get the XXX, else get foo (first string) */ +gotone: if (to = index(C,'<')) + for (C = ++to;*C != '\n' && *C != ' ' && *C != '\t' && *C != '>';++C); + else { + to = C; + for (to = C++;*C != '\n' && *C != ' ' && *C != '\t';++C); + } + *C = EOS; + + if (!(pf = popen(MAIL_CMD,"w"))) + error("sendmail pipe failed.",CHN); + + fprintf(pf,"Reply-To: %s\nFrom: %s (Bugs Bunny)\nTo: %s\n",BUGS_HOME,BUGS_HOME,to); + if (mailhead[SUBJ_TAG].found) + fprintf(pf,"Subject: Re:%s",mailhead[SUBJ_TAG].line + mailhead[SUBJ_TAG].len); + else + fputs("Subject: Bug report acknowledgement.\n",pf); + if (mailhead[DATE_TAG].found) + fprintf(pf,"In-Acknowledgement-Of: Your message of %s",mailhead[DATE_TAG].line + mailhead[DATE_TAG].len); + if (mailhead[MSG_TAG].found) + fprintf(pf,"\t\t%s",mailhead[MSG_TAG].line); + putc('\n',pf); + fflush(pf); + + if ((afd = open(ACK_FILE,O_RDONLY,0)) >= 0) { + while ((rval = read(afd,bfr,sizeof(bfr))) != ERR && rval) + write(fileno(pf),bfr,rval); + close(afd); + } + + pclose(pf); +}