projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
version #2; -f flag, remove home_dir, redist per folder
[unix-history]
/
usr
/
src
/
libexec
/
bugfiler
/
redist.c
diff --git
a/usr/src/libexec/bugfiler/redist.c
b/usr/src/libexec/bugfiler/redist.c
index
45f8f8e
..
1dc49c4
100644
(file)
--- a/
usr/src/libexec/bugfiler/redist.c
+++ b/
usr/src/libexec/bugfiler/redist.c
@@
-5,18
+5,13
@@
*/
#ifndef lint
*/
#ifndef lint
-static char sccsid[] = "@(#)redist.c 5.
1 (Berkeley) 86/11/25
";
+static char sccsid[] = "@(#)redist.c 5.
2 (Berkeley) 87/04/11
";
#endif not lint
#include <sys/file.h>
#include <stdio.h>
#include <bug.h>
#endif not lint
#include <sys/file.h>
#include <stdio.h>
#include <bug.h>
-extern HEADER mailhead[]; /* mail headers */
-extern char *distf, /* redist temp file */
- pfile[], /* permanent bug file */
- folder[]; /* system name */
-
/*
* redist --
* Redistribute a bug report to those people indicated in the
/*
* redist --
* Redistribute a bug report to those people indicated in the
@@
-24,64
+19,63
@@
extern char *distf, /* redist temp file */
*/
redist()
{
*/
redist()
{
- register char *C1, /* traveling chars */
+ extern FILE *dfp; /* dist file fp */
+ extern char pfile[]; /* permanent bug file */
+ register char *C1,
*C2;
*C2;
- register int first = YES; /* if first blank line */
- FILE *pf, /* pipe pointer */
- *dfp, /* dist file fp */
+ register int first; /* if first blank line */
+ FILE *pf,
*popen();
*popen();
- char *index()
, *mktemp()
;
+ char *index();
- if (!freopen(DIST_FILE,"r",stdin))
+ sprintf(bfr, "%s/%s", dir, DIST_FILE);
+ if (!freopen(bfr, "r", stdin))
return;
return;
-
for (;;) { /* get first part of entry */
if (!gets(bfr))
return;
for (;;) { /* get first part of entry */
if (!gets(bfr))
return;
- if (*bfr == COMMENT || *bfr == ' ' || *bfr == '\t' || !(C1 = index(bfr,':')))
+ if (*bfr == COMMENT || *bfr == ' ' || *bfr == '\t' || !(C1 = index(bfr,
':')))
continue;
*C1 = EOS;
continue;
*C1 = EOS;
- if (!strcmp(bfr,folder))
+ if (!strcmp(bfr,
folder))
break;
}
for (++C1;*C1 && (*C1 == ' ' || *C1 == '\t');++C1);
if (!*C1) /* if empty */
return;
break;
}
for (++C1;*C1 && (*C1 == ' ' || *C1 == '\t');++C1);
if (!*C1) /* if empty */
return;
- if (!(pf = popen(MAIL_CMD,"w")))
- error("sendmail pipe failed.",CHN);
+ if (!(pf = popen(MAIL_CMD,
"w")))
+ error("sendmail pipe failed.",
CHN);
- fprintf(pf,
"Reply-To: %s\n",
BUGS_HOME);
+ fprintf(pf,
"Reply-To: %s\n",
BUGS_HOME);
if (mailhead[SUBJ_TAG].found)
if (mailhead[SUBJ_TAG].found)
- fprintf(pf,
"%s",
mailhead[SUBJ_TAG].line);
+ fprintf(pf,
"%s",
mailhead[SUBJ_TAG].line);
else
else
- fputs("Subject: Untitled Bug Report\n",pf);
- fputs("Resent-To: ",pf);
+ fputs("Subject: Untitled Bug Report\n",
pf);
+ fputs("Resent-To: ",
pf);
/*
* write out first entry, then succeeding entries
* backward compatible, handles back slashes at end of line
*/
for (;;) {
/*
* write out first entry, then succeeding entries
* backward compatible, handles back slashes at end of line
*/
for (;;) {
- if (C2 = index(C1,'\\'))
+ if (C2 = index(C1,
'\\'))
*C2 = EOS;
*C2 = EOS;
- fputs(C1,pf);
+ fputs(C1,
pf);
if (!gets(bfr) || (*bfr != ' ' && *bfr != '\t'))
break;
for (C1 = bfr;*C1 && (*C1 == ' ' || *C1 == '\t');++C1);
}
if (!gets(bfr) || (*bfr != ' ' && *bfr != '\t'))
break;
for (C1 = bfr;*C1 && (*C1 == ' ' || *C1 == '\t');++C1);
}
-
fputs("\n",
pf);
+
putc('\n',
pf);
- if (!(dfp = fopen(distf,"r")))
- error("unable to read temporary file %s.",distf);
- while (fgets(bfr,sizeof(bfr),dfp))
+ rewind(dfp);
+ for (first = YES;fgets(bfr, sizeof(bfr), dfp);)
if (*bfr == '\n' && first) {
first = NO;
if (*bfr == '\n' && first) {
first = NO;
- fprintf(pf,
"\n%sReference: %s\n",mailhead[INDX_TAG].line,
pfile);
+ fprintf(pf,
"\n%sReference: %s\n", mailhead[INDX_TAG].line,
pfile);
}
else
}
else
- fputs(bfr,pf);
- fclose(dfp);
- pclose(pf);
- unlink(distf);
+ fputs(bfr, pf);
+ (void)pclose(pf);
+ (void)fclose(dfp);
}
}