Hi,
there are 2 bugs in function subst_expand().
To checkout both take the following makefile, 123.mk:
-------123.mk--------
$(warning value[text] = $(value text))
$(warning text = $(text))
$(warning value[a] = $(value a))
$(warning a = $(a))
$(error aus)
-------123.mk--------
bug1)
$ make -f 123.mk a="\$(patsubst Subst,Repl,AnyWordThatEndsWithSubstSubst)"
123.mk:1: value[text] =
123.mk:2: text =
123.mk:3: value[a] = $(patsubst Subst,Repl,AnyWordThatEndsWithSubstSubst)
123.mk:4: a = AnyWordThatEndsWithSubstRepl
123.mk:6: *** aus. Stop.
correct would be:
123.mk:4: a = AnyWordThatEndsWithSubstSubst
fix:
replace "if ((by_word && ((p > t && ..."
with "if ((by_word && ((p > text && ..."
bug2)
$ make -f 123.mk text="preQWEpre preQWEpre1 2preQWEpre 3preQWEpreQWEpre"
a="\$(text:preQWEpre=REPL)"
123.mk:1: value[text] = preQWEpre preQWEpre1 2preQWEpre 3preQWEpreQWEpre
123.mk:2: text = preQWEpre preQWEpre1 2preQWEpre 3preQWEpreQWEpre
123.mk:3: value[a] = $(text:preQWEpre=REPL)
123.mk:4: a = REPL preQWEpre1 2REPL 3preQWEpreQWEpre
123.mk:6: *** aus. Stop.
correct would be:
123.mk:4: a = REPL preQWEpre1 2REPL 3preQWEREPL
fix:
not so trivial ... when found suffix inside word, starting at t, then dont
do {t += slen}, instead do {t = end_of_token(t/*+slen-1*/) - slen}.
Regards,
Markus.
_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/bug-make