diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-09-09 17:10:53 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-09-09 17:10:53 +0200 |
| commit | ae76b7dddc2973b809109329aabf15fdd676b7d6 (patch) | |
| tree | 0ad185f833f8efaa8a0c72b75248a9e8882b9863 /src/command_manager.cc | |
| parent | 46565723b1f146af461f93dd45a9c25d43ac553d (diff) | |
Add support for shell script parameters
Now %sh{ ... } can access positional parameters through
standard shell construct, allowing simple handling of variable
parameters.
def command accepts -shell-params flag to use this facility.
Diffstat (limited to 'src/command_manager.cc')
| -rw-r--r-- | src/command_manager.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc index 1110583f..df23ca6e 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -211,6 +211,7 @@ void CommandManager::execute_single_command(const CommandParameters& params, void CommandManager::execute(const String& command_line, Context& context, + const memoryview<String>& shell_params, const EnvVarMap& env_vars) { TokenList tokens = parse(command_line); @@ -223,7 +224,8 @@ void CommandManager::execute(const String& command_line, if (it->type() == Token::Type::ShellExpand) { String output = ShellManager::instance().eval(it->content(), - context, env_vars); + context, shell_params, + env_vars); TokenList shell_tokens = parse(output); it = tokens.erase(it); for (auto& token : shell_tokens) |
