diff options
author | harti <harti@FreeBSD.org> | 2005-02-24 10:35:39 +0000 |
---|---|---|
committer | harti <harti@FreeBSD.org> | 2005-02-24 10:35:39 +0000 |
commit | b7895e139c78fb86ed45976951bb322d70a1a391 (patch) | |
tree | 26bdedfda675f5077846780d8fa1543d7f24499b /usr.bin/make | |
parent | 0cc9f8934c084cf79cc0a5c6ea0d3721bc0ebd91 (diff) | |
download | FreeBSD-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.c | 34 |
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) { |