diff options
-rw-r--r-- | it.class | 4 | ||||
-rwxr-xr-x | tests/getopt.t | 6 |
2 files changed, 8 insertions, 2 deletions
@@ -612,7 +612,7 @@ static function getopt($helplines) if ($longoptname || $shortoptname) { - if ($longoptname && $shortoptname) + if ($longoptname && ($shortoptname || $shortoptname === "0")) $alias[$shortoptname] = $longoptname; $witharg[$longoptname ? $longoptname : $shortoptname] = $longoptarg || $shortoptarg; @@ -643,7 +643,7 @@ static function getopt($helplines) else $result[$optname] = $val ? substr($val, 1) : true; } - else if ($letters = it::match('^-(\w+)', $arg)) + else if (($letters = it::match('^-(\w+)', $arg)) || $letters === "0") { foreach (explode("\n", trim(chunk_split($letters, 1, "\n"))) as $letter) { diff --git a/tests/getopt.t b/tests/getopt.t index 56974fe..7a84588 100755 --- a/tests/getopt.t +++ b/tests/getopt.t @@ -7,6 +7,7 @@ $GLOBALS['usage'] = "Usage: doesnotexist.php [OPTIONS] Some help to a not existing program -h,--help the help argument -a,--argument=ARG the arg argument + -0,--zero testworthy shortarg "; function getopt_ok($argv, $exp, $name) @@ -21,3 +22,8 @@ foreach (array("" => "blah gnaber", " (umlaute)" => "pre üäpost") as $variant => getopt_ok(array('--argument', $testarg), $testarg, "Long version with space" . $variant); getopt_ok(array("--argument=$testarg"), $testarg, "Long version with equal" . $variant); } + +$_SERVER['argv'] = array('doesnotexist.php', '-0'); +$zero_opts = it::getopt($GLOBALS['usage']); +ok($zero_opts['zero'], '-0'); + |