diff options
author | harti <harti@FreeBSD.org> | 2005-03-22 08:03:42 +0000 |
---|---|---|
committer | harti <harti@FreeBSD.org> | 2005-03-22 08:03:42 +0000 |
commit | 6218a3c3c190c9b7c1cc74eb3e3bc26cd51cbaba (patch) | |
tree | 5e579c29754720db4590d7eef5a57774010521d0 /usr.bin/make | |
parent | 5865566c6d67c2d3ae3c61d9437621ef0ccada63 (diff) | |
download | FreeBSD-src-6218a3c3c190c9b7c1cc74eb3e3bc26cd51cbaba.zip FreeBSD-src-6218a3c3c190c9b7c1cc74eb3e3bc26cd51cbaba.tar.gz |
Merge struct VarREPattern into struct VarPattern. This will help sorting
out common code.
Patch: 7.156
Submitted by: Max Okumoto <okumoto@ucsd.edu>
Diffstat (limited to 'usr.bin/make')
-rw-r--r-- | usr.bin/make/var.c | 10 | ||||
-rw-r--r-- | usr.bin/make/var.h | 13 | ||||
-rw-r--r-- | usr.bin/make/var_modify.c | 4 |
3 files changed, 12 insertions, 15 deletions
diff --git a/usr.bin/make/var.c b/usr.bin/make/var.c index f26acb0..d68a23b 100644 --- a/usr.bin/make/var.c +++ b/usr.bin/make/var.c @@ -982,7 +982,7 @@ modifier_S(VarParser *vp, const char value[], Var *v) static char * modifier_C(VarParser *vp, char value[], Var *v) { - VarREPattern patt; + VarPattern patt; char delim; char *re; int error; @@ -1004,8 +1004,8 @@ modifier_C(VarParser *vp, char value[], Var *v) vp->ptr++; /* consume 2st delim */ - patt.replace = VarGetPattern(vp, delim, NULL, NULL, NULL); - if (patt.replace == NULL) { + patt.rhs = VarGetPattern(vp, delim, NULL, NULL, NULL); + if (patt.rhs == NULL) { Fatal("Unclosed substitution for %s (%c missing)", v->name, delim); } @@ -1028,7 +1028,7 @@ modifier_C(VarParser *vp, char value[], Var *v) error = regcomp(&patt.re, re, REG_EXTENDED); if (error) { VarREError(error, &patt.re, "RE substitution error"); - free(patt.replace); + free(patt.rhs); free(re); return (var_Error); } @@ -1044,7 +1044,7 @@ modifier_C(VarParser *vp, char value[], Var *v) regfree(&patt.re); free(patt.matches); - free(patt.replace); + free(patt.rhs); free(re); return (newValue); diff --git a/usr.bin/make/var.h b/usr.bin/make/var.h index adce769..bcccc13 100644 --- a/usr.bin/make/var.h +++ b/usr.bin/make/var.h @@ -77,17 +77,14 @@ typedef struct { size_t leftLen; /* Length of string */ char *rhs; /* Replacement string (w/ &'s removed) */ size_t rightLen; /* Length of replacement */ + + regex_t re; + int nsub; + regmatch_t *matches; + int flags; } VarPattern; -typedef struct { - regex_t re; - int nsub; - regmatch_t *matches; - char *replace; - int flags; -} VarREPattern; - typedef Boolean VarModifyProc(const char *, Boolean, struct Buffer *, void *); /* diff --git a/usr.bin/make/var_modify.c b/usr.bin/make/var_modify.c index 2920ada..01f5906 100644 --- a/usr.bin/make/var_modify.c +++ b/usr.bin/make/var_modify.c @@ -470,7 +470,7 @@ VarSubstitute(const char *word, Boolean addSpace, Buffer *buf, void *patternp) Boolean VarRESubstitute(const char *word, Boolean addSpace, Buffer *buf, void *patternp) { - VarREPattern *pat; + VarPattern *pat; int xrv; const char *wp; char *rp; @@ -502,7 +502,7 @@ VarRESubstitute(const char *word, Boolean addSpace, Buffer *buf, void *patternp) Buf_AddBytes(buf, pat->matches[0].rm_so, (const Byte *)wp); } - for (rp = pat->replace; *rp; rp++) { + for (rp = pat->rhs; *rp; rp++) { if ((*rp == '\\') && ((rp[1] == '&') || (rp[1] == '\\'))) { MAYBE_ADD_SPACE(); Buf_AddByte(buf, (Byte)rp[1]); |