aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--func.go16
-rw-r--r--testcase/flavor.mk3
-rw-r--r--testcase/origin.mk3
3 files changed, 16 insertions, 6 deletions
diff --git a/func.go b/func.go
index 8933974..955e94d 100644
--- a/func.go
+++ b/func.go
@@ -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 ?=