/** * preprocess the argv array * * - split option and option value * - separate arguments after "--" */ protected function preprocessingArguments(array $argv) { // preprocessing arguments $newArgv = array(); $extra = array(); $afterDash = false; foreach ($argv as $arg) { if ($arg === '--') { $afterDash = true; continue; } if ($afterDash) { $extra[] = $arg; continue; } $a = new Argument($arg); if ($a->anyOfOptions($this->specs) && $a->containsOptionValue()) { list($opt, $val) = $a->splitAsOption(); array_push($newArgv, $opt, $val); } else { $newArgv[] = $arg; } } return array($newArgv, $extra); }