summaryrefslogtreecommitdiffstats
path: root/usr.bin/make
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2005-02-24 10:35:39 +0000
committerharti <harti@FreeBSD.org>2005-02-24 10:35:39 +0000
commitb7895e139c78fb86ed45976951bb322d70a1a391 (patch)
tree26bdedfda675f5077846780d8fa1543d7f24499b /usr.bin/make
parent0cc9f8934c084cf79cc0a5c6ea0d3721bc0ebd91 (diff)
downloadFreeBSD-src-b7895e139c78fb86ed45976951bb322d70a1a391.zip
FreeBSD-src-b7895e139c78fb86ed45976951bb322d70a1a391.tar.gz
Push assignments to just before the returns from the function to
get it clearer what variables are actually needed. Patches: 7.62.2, 7.62.3 Submitted by: Max Okumoto <okumoto@ucsd.edu>
Diffstat (limited to 'usr.bin/make')
-rw-r--r--usr.bin/make/var.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/usr.bin/make/var.c b/usr.bin/make/var.c
index 5c5a94c..0d147c9 100644
--- a/usr.bin/make/var.c
+++ b/usr.bin/make/var.c
@@ -1061,9 +1061,9 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr,
* No modifiers -- have specification length so we can return
* now.
*/
- *lengthPtr = tstr - start + 1;
- *tstr = endc;
if (dynamic) {
+ *lengthPtr = tstr - start + 1;
+ *tstr = endc;
str = emalloc(*lengthPtr + 1);
strncpy(str, start, *lengthPtr);
str[*lengthPtr] = '\0';
@@ -1071,6 +1071,8 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr,
Buf_Destroy(buf, TRUE);
return (str);
} else {
+ *lengthPtr = tstr - start + 1;
+ *tstr = endc;
*freePtr = FALSE;
Buf_Destroy(buf, TRUE);
return (err ? var_Error : varNoError);
@@ -1090,8 +1092,6 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr,
*/
char name[2];
- *lengthPtr = 2;
-
name[0] = str[1];
name[1] = '\0';
@@ -1109,6 +1109,7 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr,
*/
/* XXX: It looks like $% and $! are reversed here */
*freePtr = FALSE;
+ *lengthPtr = 2;
switch (str[1]) {
case '@':
return ("$(.TARGET)");
@@ -1119,22 +1120,23 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr,
case '!':
return ("$(.MEMBER)");
default:
- break;
+ return (err ? var_Error : varNoError);
}
+ } else {
+ *freePtr = FALSE;
+ *lengthPtr = 2;
+ return (err ? var_Error : varNoError);
}
- /*
- * Error
- */
+ } else {
+ dynamic = FALSE;
+ start = str;
*freePtr = FALSE;
- return (err ? var_Error : varNoError);
+ *lengthPtr = 2;
+ haveModifier = FALSE;
+ startc = 0;
+ endc = str[1];
+ tstr = &str[1];
}
- dynamic = FALSE;
- start = str;
- *freePtr = FALSE;
- haveModifier = FALSE;
- startc = 0;
- endc = str[1];
- tstr = &str[1];
}
if (v->flags & VAR_IN_USE) {
OpenPOWER on IntegriCloud