diff options
Diffstat (limited to 'src/makefile/macro.rs')
-rw-r--r-- | src/makefile/macro.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/makefile/macro.rs b/src/makefile/macro.rs index bb4a72d..f788edc 100644 --- a/src/makefile/macro.rs +++ b/src/makefile/macro.rs @@ -124,6 +124,19 @@ impl<'parent, 'lookup> Set<'parent, 'lookup> { Ok(result) } + #[cfg(feature = "full")] + pub fn origin(&self, name: &str) -> &'static str { + match self.data.get(name) { + None => self.parent.map_or("undefined", |p| p.origin(name)), + Some((Source::Builtin, _)) => "default", + Some((Source::Environment, _)) => "environment", + // TODO figure out when to return "environment override" + Some((Source::File, _)) => "file", + Some((Source::CommandLineOrMakeflags, _)) => "command line", + // TODO handle override and automatic + } + } + pub fn with_lookup<'l, 's: 'l>(&'s self, lookup: &'l dyn LookupInternal) -> Set<'s, 'l> { Set { parent: Some(self), |