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'); + |