#include function psi\opterr(int $value) : void { let opterr = intval($value); return opterr_set(opterr) as void(opterr_set); } function psi\optind\get() : int { return optind_get() as to_int(optind_get); } function psi\optind\set(int $v) : void { let optind = intval($v); return optind_set(optind) as void(optind_set); } function psi\optopt() : int { return optopt_get() as to_int(optopt_get); } function psi\optarg() : string { return optarg_get() as to_string(optarg_get); } #ifdef _OPTRESET function psi\optreset() : void { let _v = 1; return optreset_set(_v) as void(optreset_set); } #endif static function psi\getopt(array &$argv, string $options) : int { let argc = count($argv); let argv = &arrval($argv, *argv = strval($argv) ); let optstring = strval($options); return getopt(argc, argv, optstring) as to_int(getopt); set $argv = to_array( *argv, argc, to_string(*argv) ); }