Date: Thu, 21 Nov 1996 04:38:16 -0800 (PST) From: asami@freebsd.org (Satoshi Asami) To: stable@freebsd.org Subject: urgent: make patch Message-ID: <199611211238.EAA01787@silvia.HIP.Berkeley.EDU>
next in thread | raw e-mail | index | archive | help
I just found out that the latest bsd.port.mk doesn't work on -stable
because the :S fix by Adam is not in that version.
Can someone test this real quick before I commit it to the -stable
branch? I tested it here with some ports but I want to make sure this
doesn't break anything. (A make world would be nice.)
Satoshi
-------
Index: var.c
===================================================================
RCS file: /usr/cvs/src/usr.bin/make/var.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- var.c 1995/06/18 12:34:14 1.4
+++ var.c 1995/11/01 12:18:32 1.5
@@ -147,7 +147,6 @@
#define VAR_SUB_GLOBAL 1 /* Apply substitution globally */
#define VAR_MATCH_START 2 /* Match at start of word */
#define VAR_MATCH_END 4 /* Match at end of word */
-#define VAR_NO_SUB 8 /* Substitution is non-global and already done */
} VarPattern;
static int VarCmp __P((ClientData, ClientData));
@@ -883,9 +882,9 @@
VarPattern *pattern = (VarPattern *) patternp;
wordLen = strlen(word);
- if ((pattern->flags & VAR_NO_SUB) == 0) {
+ if (1) { /* substitute in each word of the variable */
/*
- * Still substituting -- break it down into simple anchored cases
+ * Break substitution down into simple anchored cases
* and if none of them fits, perform the general substitution case.
*/
if ((pattern->flags & VAR_MATCH_START) &&
@@ -967,7 +966,7 @@
* Pattern is unanchored: search for the pattern in the word using
* String_FindSubstring, copying unmatched portions and the
* right-hand-side for each match found, handling non-global
- * subsititutions correctly, etc. When the loop is done, any
+ * substitutions correctly, etc. When the loop is done, any
* remaining part of the word (word and wordLen are adjusted
* accordingly through the loop) is copied straight into the
* buffer.
@@ -990,13 +989,9 @@
Buf_AddBytes(buf, pattern->rightLen, (Byte *)pattern->rhs);
wordLen -= (cp - word) + pattern->leftLen;
word = cp + pattern->leftLen;
- if (wordLen == 0) {
+ if (wordLen == 0 || (pattern->flags & VAR_SUB_GLOBAL) == 0){
done = TRUE;
}
- if ((pattern->flags & VAR_SUB_GLOBAL) == 0) {
- done = TRUE;
- pattern->flags |= VAR_NO_SUB;
- }
} else {
done = TRUE;
}
@@ -1015,14 +1010,9 @@
return ((Buf_Size(buf) != origSize) || addSpace);
}
/*
- * Common code for anchored substitutions: if performed a substitution
- * and it's not supposed to be global, mark the pattern as requiring
- * no more substitutions. addSpace was set TRUE if characters were
- * added to the buffer.
+ * Common code for anchored substitutions:
+ * addSpace was set TRUE if characters were added to the buffer.
*/
- if ((pattern->flags & VAR_SUB_GLOBAL) == 0) {
- pattern->flags |= VAR_NO_SUB;
- }
return (addSpace);
}
nosub:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611211238.EAA01787>
