X-Git-Url: https://git.m6w6.name/?p=pharext%2Fpharext;a=blobdiff_plain;f=src%2Fpharext%2FCliArgs.php;h=fb9a7ec5895ab02d31ef765b3cba31a81d1f2d7e;hp=f93ad7b884f5d9c2136e42b0e1c00df69c94428c;hb=2394c71d8ebfa6ca114587ee88859c588a0fc85f;hpb=7c5473b7e08ec0297c94c88248b85c2e1793ad42 diff --git a/src/pharext/CliArgs.php b/src/pharext/CliArgs.php index f93ad7b..fb9a7ec 100644 --- a/src/pharext/CliArgs.php +++ b/src/pharext/CliArgs.php @@ -103,6 +103,15 @@ class CliArgs implements \ArrayAccess for ($i = 0; $i < $argc; ++$i) { $o = $argv[$i]; + if ($o{0} === '-' && strlen($o) > 1 && $o{1} !== '-') { + // multiple short opts, .e.g -vps + $argc += strlen($o) - 2; + array_splice($argv, $i, 1, array_map(function($s) { + return "-$s"; + }, str_split(substr($o, 1)))); + $o = $argv[$i]; + } + if (!isset($this->spec[$o])) { yield sprintf("Unknown option %s", $argv[$i]); } elseif (!$this->optAcceptsArg($o)) {