diff options
Diffstat (limited to 'src/command_manager.cc')
| -rw-r--r-- | src/command_manager.cc | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc index cd711c87..d5ccdeb7 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -348,17 +348,14 @@ String expand_token(const Token& token, const Context& context, } case Token::Type::ArgExpand: { - if (content == "#") - return to_string(shell_context.params.size()); - else if (content == "@") - return join(shell_context.params, ' '); + auto& params = shell_context.params; + if (content == '@') + return join(params, ' '); const int arg = str_to_int(content)-1; if (arg < 0) throw runtime_error("invalid argument index"); - if (arg < shell_context.params.size()) - return shell_context.params[arg]; - return {}; + return arg < params.size() ? params[arg] : String{}; } case Token::Type::RawEval: return expand(content, context, shell_context); |
