protected function handleArgs()
{
// Default
$args = ['--list' => false, '--quite' => false, '--set' => 'to70', '--dump' => false, '--verbose' => false, '--version' => false, '--help' => false, '<file>' => [], '--export-posbit' => false, '--pack' => false];
// Fill args
$argv = array_slice($_SERVER['argv'], 1);
$has_invalid = false;
while ($argv) {
$arg = array_shift($argv);
if ($arg[0] === chr(1)) {
$arg = substr($arg, 1);
$is_split = true;
} else {
$is_split = false;
}
switch ($arg) {
case '-l':
case '--list':
$args['--list'] = true;
break;
case '-q':
case '--quite':
$args['--quite'] = true;
break;
case '-s':
case '--set':
$next = array_shift($argv);
if ($is_split) {
$next = substr($next, 1);
}
$args['--set'] = $next;
break;
case '-d':
case '--dump':
$args['--dump'] = true;
break;
case '-v':
case '--verbose':
$args['--verbose'] = true;
break;
case '--version':
$args['--version'] = true;
break;
case '-h':
case '--help':
$args['--help'] = true;
break;
case '--export-posbit':
$args['--export-posbit'] = true;
break;
case '--pack':
$args['--pack'] = true;
break;
default:
if ($arg[0] == '-') {
$arglen = strlen($arg);
if ($arglen > 2 && $arg[1] != '-') {
array_unshift($argv, '-' . substr($arg, 2));
array_unshift($argv, chr(1) . substr($arg, 0, 2));
} else {
$has_invalid = true;
}
} else {
$args['<file>'][] = $arg;
}
break;
}
}
$this->args = $args;
return !$has_invalid;
}