projects
/
pharext
/
pharext
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
support concatenated short opts like -vps
[pharext/pharext]
/
src
/
pharext
/
CliArgs.php
diff --git
a/src/pharext/CliArgs.php
b/src/pharext/CliArgs.php
index f93ad7b884f5d9c2136e42b0e1c00df69c94428c..fb9a7ec5895ab02d31ef765b3cba31a81d1f2d7e 100644
(file)
--- 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];
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)) {
if (!isset($this->spec[$o])) {
yield sprintf("Unknown option %s", $argv[$i]);
} elseif (!$this->optAcceptsArg($o)) {