summaryrefslogtreecommitdiffstats
path: root/contrib/bmake/meta.c
diff options
context:
space:
mode:
authorsjg <sjg@FreeBSD.org>2017-07-28 15:43:36 +0000
committersjg <sjg@FreeBSD.org>2017-07-28 15:43:36 +0000
commitc11d433cf862d22adb149f846f8c19360103959f (patch)
treeddc881b900dae40774456b09ca23117303ed93fa /contrib/bmake/meta.c
parenta34bf7e39604a98feeec348d8b49988a92e05bf5 (diff)
downloadFreeBSD-src-c11d433cf862d22adb149f846f8c19360103959f.zip
FreeBSD-src-c11d433cf862d22adb149f846f8c19360103959f.tar.gz
MFC bmake-20170720
PR: 221023
Diffstat (limited to 'contrib/bmake/meta.c')
-rw-r--r--contrib/bmake/meta.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/contrib/bmake/meta.c b/contrib/bmake/meta.c
index 33c2dd8..b8ddfb0 100644
--- a/contrib/bmake/meta.c
+++ b/contrib/bmake/meta.c
@@ -1,4 +1,4 @@
-/* $NetBSD: meta.c,v 1.67 2016/08/17 15:52:42 sjg Exp $ */
+/* $NetBSD: meta.c,v 1.68 2017/07/09 04:54:00 sjg Exp $ */
/*
* Implement 'meta' mode.
@@ -727,7 +727,7 @@ meta_job_error(Job *job, GNode *gn, int flags, int status)
pbm = &Mybm;
}
if (pbm->mfp != NULL) {
- fprintf(pbm->mfp, "*** Error code %d%s\n",
+ fprintf(pbm->mfp, "\n*** Error code %d%s\n",
status,
(flags & JOB_IGNERR) ?
"(ignored)" : "");
@@ -782,13 +782,13 @@ int
meta_cmd_finish(void *pbmp)
{
int error = 0;
-#ifdef USE_FILEMON
BuildMon *pbm = pbmp;
int x;
if (!pbm)
pbm = &Mybm;
+#ifdef USE_FILEMON
if (pbm->filemon_fd >= 0) {
if (close(pbm->filemon_fd) < 0)
error = errno;
@@ -796,8 +796,9 @@ meta_cmd_finish(void *pbmp)
if (error == 0 && x != 0)
error = x;
pbm->filemon_fd = pbm->mon_fd = -1;
- }
+ } else
#endif
+ fprintf(pbm->mfp, "\n"); /* ensure end with newline */
return error;
}
@@ -861,6 +862,8 @@ fgetLine(char **bufp, size_t *szp, int o, FILE *fp)
newsz = ROUNDUP((fs.st_size / 2), BUFSIZ);
if (newsz <= bufsz)
newsz = ROUNDUP(fs.st_size, BUFSIZ);
+ if (newsz <= bufsz)
+ return x; /* truncated */
if (DEBUG(META))
fprintf(debug_file, "growing buffer %u -> %u\n",
(unsigned)bufsz, (unsigned)newsz);
@@ -948,10 +951,10 @@ meta_ignore(GNode *gn, const char *p)
if (metaIgnorePatterns) {
char *pm;
- snprintf(fname, sizeof(fname),
- "${%s:@m@${%s:L:M$m}@}",
- MAKE_META_IGNORE_PATTERNS, p);
- pm = Var_Subst(NULL, fname, gn, VARF_WANTRES);
+ Var_Set(".p.", p, gn, 0);
+ pm = Var_Subst(NULL,
+ "${" MAKE_META_IGNORE_PATTERNS ":@m@${.p.:M$m}@}",
+ gn, VARF_WANTRES);
if (*pm) {
#ifdef DEBUG_META_MODE
if (DEBUG(META))
OpenPOWER on IntegriCloud