summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--it.class3
-rwxr-xr-xtest/exec.t3
2 files changed, 5 insertions, 1 deletions
diff --git a/it.class b/it.class
index c219f19..5b83317 100644
--- a/it.class
+++ b/it.class
@@ -704,7 +704,8 @@ static function shell_command($cmd, ...$args)
else
{
foreach ((array)$values[$key] as $value)
- $parts[] = it::_exec_quotevalue($value, "cmd=$cmd key=$key val=$value");
+ if ($value !== false)
+ $parts[] = it::_exec_quotevalue($value, "cmd=$cmd key=$key val=$value");
}
$replacements[$tag] = implode(" ", $parts);
diff --git a/test/exec.t b/test/exec.t
index 5f78482..09e16da 100755
--- a/test/exec.t
+++ b/test/exec.t
@@ -9,6 +9,9 @@ is(it::exec("echo {0}", 'gna'), "gna\n", "exec with positional argument");
is(it::shell_command("echo {arg}", ['arg' => 'gna07,-:blah']), "echo gna07,-:blah", "don't quote arguments with only whitelistes characters");
is(it::shell_command("echo {arg}", ['arg' => '2>&1']), "echo '2>&1'", "quote arguments with dangerous characters");
is(it::shell_command("echo {arg}", ['arg' => '']), "echo ''", "quote empty arguments");
+is(it::shell_command("echo {arg}", ['arg' => null]), "echo ", "remove null values");
+is(it::shell_command("echo {arg}", ['arg' => false]), "echo ", "remove false values");
+is(it::shell_command("echo {arg}", ['arg' => []]), "echo ", "remove empty arrays");
is(