summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2005-02-28 17:23:17 +0000
committerharti <harti@FreeBSD.org>2005-02-28 17:23:17 +0000
commitc177bb55fbaf41611e2379ece511a03515cb6c91 (patch)
tree6ffae67b8897a4598d73659219f9a7ed9c1c4938
parent3bc669b0fc23485773f1fb98a7cfad823a34bf26 (diff)
downloadFreeBSD-src-c177bb55fbaf41611e2379ece511a03515cb6c91.zip
FreeBSD-src-c177bb55fbaf41611e2379ece511a03515cb6c91.tar.gz
VarParseLong: Move the initialisation of dynamic up which saves
an else clause. Move the assignment to the lengthPtr down to just before the return statements. Patch: 7.81 Submitted by: Max Okumoto <okumoto@ucsd.edu>
-rw-r--r--usr.bin/make/var.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.bin/make/var.c b/usr.bin/make/var.c
index bd9ade8..fb7ae0f 100644
--- a/usr.bin/make/var.c
+++ b/usr.bin/make/var.c
@@ -1006,6 +1006,8 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
}
}
+ dynamic = FALSE;
+
if (v == NULL) {
if (((ctxt == VAR_CMD) || (ctxt == VAR_GLOBAL)) &&
((vlen == 1) ||
@@ -1079,8 +1081,6 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
return (err ? var_Error : varNoError);
}
}
- } else {
- dynamic = FALSE;
}
Buf_Destroy(buf, TRUE);
@@ -1634,7 +1634,6 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
tstr = cp;
}
}
- *lengthPtr = tstr - input + 1;
if (v->flags & VAR_FROM_ENV) {
if (rw_str == (char *)Buf_GetAll(v->val, (size_t *)NULL)) {
@@ -1643,9 +1642,11 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
* the thing.
*/
*freePtr = TRUE;
+ *lengthPtr = tstr - input + 1;
VarDestroy(v, FALSE);
return (rw_str);
} else {
+ *lengthPtr = tstr - input + 1;
VarDestroy(v, TRUE);
return (rw_str);
}
@@ -1659,6 +1660,7 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
}
if (dynamic) {
*freePtr = FALSE;
+ *lengthPtr = tstr - input + 1;
VarDestroy(v, TRUE);
rw_str = emalloc(*lengthPtr + 1);
strncpy(rw_str, input, *lengthPtr);
@@ -1667,10 +1669,12 @@ VarParseLong(char foo[], GNode *ctxt, Boolean err, size_t *lengthPtr,
return (rw_str);
} else {
*freePtr = FALSE;
+ *lengthPtr = tstr - input + 1;
VarDestroy(v, TRUE);
return (err ? var_Error : varNoError);
}
} else {
+ *lengthPtr = tstr - input + 1;
return (rw_str);
}
}
OpenPOWER on IntegriCloud