diff options
-rw-r--r-- | func.go | 16 | ||||
-rw-r--r-- | testcase/flavor.mk | 3 | ||||
-rw-r--r-- | testcase/origin.mk | 3 |
3 files changed, 16 insertions, 6 deletions
@@ -1298,7 +1298,13 @@ func (f *funcOrigin) Eval(w io.Writer, ev *Evaluator) error { if err != nil { return err } - v := ev.LookupVar(f.args[1].String()) + abuf := newBuf() + err = f.args[1].Eval(abuf, ev) + if err != nil { + return err + } + v := ev.LookupVar(abuf.String()) + freeBuf(abuf) io.WriteString(w, v.Origin()) return nil } @@ -1312,7 +1318,13 @@ func (f *funcFlavor) Eval(w io.Writer, ev *Evaluator) error { if err != nil { return err } - v := ev.LookupVar(f.args[1].String()) + abuf := newBuf() + err = f.args[1].Eval(abuf, ev) + if err != nil { + return err + } + v := ev.LookupVar(abuf.String()) + freeBuf(abuf) io.WriteString(w, v.Flavor()) return nil } diff --git a/testcase/flavor.mk b/testcase/flavor.mk index eb3402b..86a84d5 100644 --- a/testcase/flavor.mk +++ b/testcase/flavor.mk @@ -10,8 +10,7 @@ all: echo $(flavor A) $(flavor B) $(flavor C) $(flavor D) $(flavor E) echo $(flavor PATH) echo $(flavor MAKEFILE_LIST) -# TODO(go): Fix -# echo $(flavor $(AREF)) + echo $(flavor $(AREF)) # For some reason, $(flavor MAKECMDGOALS) should be "undefined" # echo $(flavor MAKECMDGOALS) diff --git a/testcase/origin.mk b/testcase/origin.mk index 4ce1adf..21357d1 100644 --- a/testcase/origin.mk +++ b/testcase/origin.mk @@ -13,8 +13,7 @@ test: echo $(origin PATH) echo $(origin MAKEFILE_LIST) echo $(origin CC) -# TODO(go): Fix -# echo $(origin $(FOOREF)) + echo $(origin $(FOOREF)) # TODO: support environment override, command line, and override. # TODO: Also add more tests especially for += and ?= |