From: Máté Kocsis Date: Fri, 1 Nov 2019 14:00:14 +0000 (+0100) Subject: Add stubs for standard lib functions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab6b412a0b6f4c6cae5820a50d1d3756ea26cd0c;p=php Add stubs for standard lib functions --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index b405842c01..a00b2a6f4e 100755 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -121,301 +121,6 @@ static void user_tick_function_dtor(user_tick_function_entry *tick_function_entr /* {{{ arginfo */ -/* {{{ basic_functions.c */ -ZEND_BEGIN_ARG_INFO(arginfo_get_magic_quotes_gpc, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_get_magic_quotes_runtime, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_constant, 0) - ZEND_ARG_INFO(0, const_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ip2long, 0) - ZEND_ARG_INFO(0, ip_address) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_long2ip, 0) - ZEND_ARG_INFO(0, proper_address) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_getenv, 0, 0, 0) - ZEND_ARG_INFO(0, varname) - ZEND_ARG_INFO(0, local_only) -ZEND_END_ARG_INFO() - -#ifdef HAVE_PUTENV -ZEND_BEGIN_ARG_INFO(arginfo_putenv, 0) - ZEND_ARG_INFO(0, setting) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO_EX(arginfo_getopt, 0, 0, 1) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, opts) /* ARRAY_INFO(0, opts, 1) */ - ZEND_ARG_INFO(1, optind) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_flush, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sleep, 0) - ZEND_ARG_INFO(0, seconds) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_usleep, 0) - ZEND_ARG_INFO(0, micro_seconds) -ZEND_END_ARG_INFO() - -#if HAVE_NANOSLEEP -ZEND_BEGIN_ARG_INFO(arginfo_time_nanosleep, 0) - ZEND_ARG_INFO(0, seconds) - ZEND_ARG_INFO(0, nanoseconds) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_time_sleep_until, 0) - ZEND_ARG_INFO(0, timestamp) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO(arginfo_get_current_user, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_get_cfg_var, 0) - ZEND_ARG_INFO(0, option_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_error_log, 0, 0, 1) - ZEND_ARG_INFO(0, message) - ZEND_ARG_INFO(0, message_type) - ZEND_ARG_INFO(0, destination) - ZEND_ARG_INFO(0, extra_headers) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_error_get_last, 0, 0, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_error_clear_last, 0, 0, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func, 0, 0, 1) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_VARIADIC_INFO(0, parameters) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func_array, 0, 0, 2) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_INFO(0, parameters) /* ARRAY_INFO(0, parameters, 1) */ -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_forward_static_call, 0, 0, 1) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_VARIADIC_INFO(0, parameters) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_forward_static_call_array, 0, 0, 2) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_INFO(0, parameters) /* ARRAY_INFO(0, parameters, 1) */ -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_register_shutdown_function, 0, 0, 1) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_VARIADIC_INFO(0, parameters) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_file, 0, 0, 1) - ZEND_ARG_INFO(0, file_name) - ZEND_ARG_INFO(0, return) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_php_strip_whitespace, 0) - ZEND_ARG_INFO(0, file_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_string, 0, 0, 1) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, return) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ini_get, 0) - ZEND_ARG_INFO(0, varname) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ini_get_all, 0, 0, 0) - ZEND_ARG_INFO(0, extension) - ZEND_ARG_INFO(0, details) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ini_set, 0) - ZEND_ARG_INFO(0, varname) - ZEND_ARG_INFO(0, newvalue) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ini_restore, 0) - ZEND_ARG_INFO(0, varname) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_set_include_path, 0) - ZEND_ARG_INFO(0, new_include_path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_get_include_path, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_restore_include_path, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_print_r, 0, 0, 1) - ZEND_ARG_INFO(0, var) - ZEND_ARG_INFO(0, return) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_connection_aborted, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_connection_status, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ignore_user_abort, 0, 0, 0) - ZEND_ARG_INFO(0, value) -ZEND_END_ARG_INFO() - -#if HAVE_GETSERVBYNAME -ZEND_BEGIN_ARG_INFO(arginfo_getservbyname, 0) - ZEND_ARG_INFO(0, service) - ZEND_ARG_INFO(0, protocol) -ZEND_END_ARG_INFO() -#endif - -#if HAVE_GETSERVBYPORT -ZEND_BEGIN_ARG_INFO(arginfo_getservbyport, 0) - ZEND_ARG_INFO(0, port) - ZEND_ARG_INFO(0, protocol) -ZEND_END_ARG_INFO() -#endif - -#if HAVE_GETPROTOBYNAME -ZEND_BEGIN_ARG_INFO(arginfo_getprotobyname, 0) - ZEND_ARG_INFO(0, name) -ZEND_END_ARG_INFO() -#endif - -#if HAVE_GETPROTOBYNUMBER -ZEND_BEGIN_ARG_INFO(arginfo_getprotobynumber, 0) - ZEND_ARG_INFO(0, proto) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO_EX(arginfo_register_tick_function, 0, 0, 1) - ZEND_ARG_INFO(0, function_name) - ZEND_ARG_VARIADIC_INFO(0, parameters) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_unregister_tick_function, 0) - ZEND_ARG_INFO(0, function_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_uploaded_file, _IS_BOOL, 0) - ZEND_ARG_INFO(0, path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_move_uploaded_file, 0) - ZEND_ARG_INFO(0, path) - ZEND_ARG_INFO(0, new_path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_file, 0, 0, 1) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, process_sections) - ZEND_ARG_INFO(0, scanner_mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_string, 0, 0, 1) - ZEND_ARG_INFO(0, ini_string) - ZEND_ARG_INFO(0, process_sections) - ZEND_ARG_INFO(0, scanner_mode) -ZEND_END_ARG_INFO() - -#if ZEND_DEBUG -ZEND_BEGIN_ARG_INFO(arginfo_config_get_hash, 0) -ZEND_END_ARG_INFO() -#endif - -#ifdef HAVE_GETLOADAVG -ZEND_BEGIN_ARG_INFO(arginfo_sys_getloadavg, 0) -ZEND_END_ARG_INFO() -#endif -/* }}} */ -/* {{{ browscap.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_get_browser, 0, 0, 0) - ZEND_ARG_INFO(0, browser_name) - ZEND_ARG_INFO(0, return_array) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ cyr_convert.c */ -ZEND_BEGIN_ARG_INFO(arginfo_convert_cyr_string, 0) - ZEND_ARG_INFO(0, str) - ZEND_ARG_INFO(0, from) - ZEND_ARG_INFO(0, to) -ZEND_END_ARG_INFO() - -/* }}} */ -/* {{{ datetime.c */ -#if HAVE_STRPTIME -ZEND_BEGIN_ARG_INFO(arginfo_strptime, 0) - ZEND_ARG_INFO(0, timestamp) - ZEND_ARG_INFO(0, format) -ZEND_END_ARG_INFO() -#endif -/* }}} */ - -/* {{{ dns.c */ -ZEND_BEGIN_ARG_INFO(arginfo_gethostbyaddr, 0) - ZEND_ARG_INFO(0, ip_address) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gethostbyname, 0) - ZEND_ARG_INFO(0, hostname) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gethostbynamel, 0) - ZEND_ARG_INFO(0, hostname) -ZEND_END_ARG_INFO() - -#ifdef HAVE_GETHOSTNAME -ZEND_BEGIN_ARG_INFO(arginfo_gethostname, 0) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO(arginfo_net_get_interfaces, 0) -ZEND_END_ARG_INFO() - -#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC -ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_check_record, 0, 0, 1) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, type) -ZEND_END_ARG_INFO() - -# if defined(PHP_WIN32) || HAVE_FULL_DNS_FUNCS -ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_get_record, 0, 0, 1) - ZEND_ARG_INFO(0, hostname) - ZEND_ARG_INFO(0, type) - ZEND_ARG_ARRAY_INFO(1, authns, 1) - ZEND_ARG_ARRAY_INFO(1, addtl, 1) - ZEND_ARG_INFO(0, raw) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_get_mx, 0, 0, 2) - ZEND_ARG_INFO(0, hostname) - ZEND_ARG_INFO(1, mxhosts) /* ARRAY_INFO(1, mxhosts, 1) */ - ZEND_ARG_INFO(1, weight) /* ARRAY_INFO(1, weight, 1) */ -ZEND_END_ARG_INFO() -# endif - -#endif /* defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC */ -/* }}} */ - /* {{{ exec.c */ ZEND_BEGIN_ARG_INFO_EX(arginfo_exec, 0, 0, 1) ZEND_ARG_INFO(0, command) @@ -1159,7 +864,7 @@ static const zend_function_entry basic_functions[] = { /* {{{ */ PHP_FE(sleep, arginfo_sleep) PHP_FE(usleep, arginfo_usleep) #if HAVE_NANOSLEEP - PHP_FE(time_nanosleep, arginfo_time_nanosleep) + PHP_FE(time_nanosleep, arginfo_nanosleep) PHP_FE(time_sleep_until, arginfo_time_sleep_until) #endif diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index c596d216e8..bb72ed2ff9 100755 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -272,6 +272,168 @@ function base64_encode(string $str): string {} /** @return string|false */ function base64_decode(string $str, bool $strict = false) {} +/* basic_functions.c */ + +/** @return mixed */ +function constant(string $name) {} + +/** @return int|false */ +function ip2long(string $ip_address) {} + +/** @return string|false */ +function long2ip(int $proper_address) {} + +/** @return string|array|false */ +function getenv(string $variable = UNKNOWN, bool $local_only = false) {} + +#ifdef HAVE_PUTENV +function putenv(string $setting): bool {} +#endif + +/** @return array|false */ +function getopt(string $options, array $longopts = [], &$optind = null) {} + +function flush(): void {} + +function sleep(int $seconds): int {} + +function usleep(int $microseconds): void {} + +#if HAVE_NANOSLEEP +/** @return array|bool */ +function nanosleep(int $seconds, int $nanoseconds) {} + +function time_sleep_until(float $timestamp): bool {} +#endif + +function get_current_user(): string {} + +/** @return string|array|false */ +function get_cfg_var(string $option_name) {} + +function get_magic_quotes_runtime(): bool {} + +function get_magic_quotes_gpc(): bool {} + +function error_log(string $message, int $message_type = 0, string $destination = UNKNOWN, string $extra_headers = UNKNOWN): bool {} + +function error_get_last(): ?array {} + +function error_clear_last(): void {} + +/** + * @param mixed ...$args + * @return mixed + */ +function call_user_func(callable $function, ...$args) {} + +/** @return mixed */ +function call_user_func_array(callable $function, array $args) {} + +/** + * @param mixed ...$args + * @return mixed + */ +function forward_static_call(callable $function, ...$args) {} + +/** @return mixed */ +function forward_static_call_array(callable $function, array $args) {} + +/** + * @param callable $function + * @param mixed ...$args + * @return false|null + */ +function register_shutdown_function($function, ...$args) {} + +/** @return string|bool|null */ +function highlight_file(string $filename, bool $return = false) {} + +function php_strip_whitespace(string $filename): string {} + +/** @return string|bool|null */ +function highlight_string(string $string, bool $return = false) {} + +/** @return string|false */ +function ini_get(string $varname) {} + +/** @return array|false */ +function ini_get_all(?string $extension = null, bool $details = true) {} + +/** @return string|false */ +function ini_set(string $varname, string $value) {} + +function ini_restore(string $varname): void {} + +/** @return string|false */ +function set_include_path(string $include_path) {} + +/** @return string|false */ +function get_include_path() {} + +function restore_include_path(): void {} + +/** + * @param mixed $var + * @return string|bool + */ +function print_r($var, bool $return = false) {} + +function connection_aborted(): int {} + +function connection_status(): int {} + +function ignore_user_abort(bool $value = UNKNOWN): int {} + +#if HAVE_GETSERVBYNAME +/** @return int|false */ +function getservbyname(string $service, string $protocol) {} +#endif + +#if HAVE_GETSERVBYPORT +/** @return string|false */ +function getservbyport(int $port, string $protocol) {} +#endif + +#if HAVE_GETPROTOBYNAME +/** @return int|false */ +function getprotobyname(string $name) {} +#endif + +#if HAVE_GETPROTOBYNUMBER +/** @return string|false */ +function getprotobynumber(int $protocol) {} +#endif + +/** @param mixed $args */ +function register_tick_function(callable $function, ...$args): bool {} + +function unregister_tick_function($function): void {} + +function is_uploaded_file(string $path): bool {} + +function move_uploaded_file(string $path, string $new_path): bool {} + +/** @return array|false */ +function parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL) {} + +/** @return array|false */ +function parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL) {} + +#if ZEND_DEBUG +function config_get_hash(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array {} +#endif + +#ifdef HAVE_GETLOADAVG +/** @return array|false */ +function sys_getloadavg() {} +#endif + +/* browscap.c */ + +/** @return object|array|false */ +function get_browser(?string $browser_name = null, bool $return_array = false) {} + /* crc32.c */ function crc32(string $str): int {} @@ -280,6 +442,46 @@ function crc32(string $str): int {} function crypt(string $str, string $salt = UNKNOWN): string {} +/* cyr_convert.c */ + +function convert_cyr_string(string $str, string $from, string $to): string {} + +/* datetime.c */ + +#if HAVE_STRPTIME +/** @return array|false */ +function strptime(string $timestamp, string $format) {} +#endif + +/* dns.c */ + +#ifdef HAVE_GETHOSTNAME +/** @return string|false */ +function gethostname() {} +#endif + +/** @return string|false */ +function gethostbyaddr(string $ip_address) {} + +function gethostbyname(string $hostname): string {} + +/** @return array|false */ +function gethostbynamel(string $hostname) {} + +#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC +function dns_check_record(string $hostname, string $type = "MX"): bool {} + +/** @return array|false */ +function dns_get_record(string $hostname, int $type = DNS_ANY, &$authns = null, &$addtl = null, bool $raw = false) {} + +function dns_get_mx(string $hostname, &$mxhosts, &$weight = null): bool {} +#endif + +/* net.c */ + +/** @return array|false */ +function net_get_interfaces() {} + /* ftok.c */ #if HAVE_FTOK diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index 200891a563..4e0b672ed0 100755 --- a/ext/standard/basic_functions_arginfo.h +++ b/ext/standard/basic_functions_arginfo.h @@ -364,6 +364,228 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_base64_decode, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, strict, _IS_BOOL, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_constant, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_ip2long, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, ip_address, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_long2ip, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, proper_address, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getenv, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, variable, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, local_only, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +#if defined(HAVE_PUTENV) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_putenv, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, setting, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getopt, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, options, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, longopts, IS_ARRAY, 0) + ZEND_ARG_INFO(1, optind) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_flush, 0, 0, IS_VOID, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sleep, 0, 1, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_usleep, 0, 1, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, microseconds, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#if HAVE_NANOSLEEP +ZEND_BEGIN_ARG_INFO_EX(arginfo_nanosleep, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, nanoseconds, IS_LONG, 0) +ZEND_END_ARG_INFO() +#endif + +#if HAVE_NANOSLEEP +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_time_sleep_until, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, timestamp, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_current_user, 0, 0, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_get_cfg_var, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, option_name, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_get_magic_quotes_runtime arginfo_ob_flush + +#define arginfo_get_magic_quotes_gpc arginfo_ob_flush + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_error_log, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, message_type, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, destination, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, extra_headers, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_error_get_last, 0, 0, IS_ARRAY, 1) +ZEND_END_ARG_INFO() + +#define arginfo_error_clear_last arginfo_flush + +ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0) + ZEND_ARG_VARIADIC_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func_array, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0) + ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + +#define arginfo_forward_static_call arginfo_call_user_func + +#define arginfo_forward_static_call_array arginfo_call_user_func_array + +ZEND_BEGIN_ARG_INFO_EX(arginfo_register_shutdown_function, 0, 0, 1) + ZEND_ARG_INFO(0, function) + ZEND_ARG_VARIADIC_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_file, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, return, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_strip_whitespace, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_string, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, return, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_ini_get, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, varname, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_ini_get_all, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, extension, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, details, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_ini_set, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, varname, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ini_restore, 0, 1, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, varname, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_set_include_path, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, include_path, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_get_include_path arginfo_ob_get_flush + +#define arginfo_restore_include_path arginfo_flush + +ZEND_BEGIN_ARG_INFO_EX(arginfo_print_r, 0, 0, 1) + ZEND_ARG_INFO(0, var) + ZEND_ARG_TYPE_INFO(0, return, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +#define arginfo_connection_aborted arginfo_ob_get_level + +#define arginfo_connection_status arginfo_ob_get_level + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ignore_user_abort, 0, 0, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, value, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +#if HAVE_GETSERVBYNAME +ZEND_BEGIN_ARG_INFO_EX(arginfo_getservbyname, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, service, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, protocol, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if HAVE_GETSERVBYPORT +ZEND_BEGIN_ARG_INFO_EX(arginfo_getservbyport, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, port, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, protocol, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if HAVE_GETPROTOBYNAME +ZEND_BEGIN_ARG_INFO_EX(arginfo_getprotobyname, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if HAVE_GETPROTOBYNUMBER +ZEND_BEGIN_ARG_INFO_EX(arginfo_getprotobynumber, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, protocol, IS_LONG, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_register_tick_function, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0) + ZEND_ARG_VARIADIC_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_unregister_tick_function, 0, 1, IS_VOID, 0) + ZEND_ARG_INFO(0, function) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_uploaded_file, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_move_uploaded_file, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, new_path, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_file, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, process_sections, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, scanner_mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_string, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, ini_string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, process_sections, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, scanner_mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#if ZEND_DEBUG +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_config_get_hash, 0, 1, IS_ARRAY, 0) + ZEND_ARG_TYPE_INFO(0, ini_string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, process_sections, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, scanner_mode, IS_LONG, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_GETLOADAVG) +ZEND_BEGIN_ARG_INFO_EX(arginfo_sys_getloadavg, 0, 0, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_INFO_EX(arginfo_get_browser, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, browser_name, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, return_array, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_crc32, 0, 1, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0) ZEND_END_ARG_INFO() @@ -373,6 +595,61 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_crypt, 0, 1, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_convert_cyr_string, 0, 3, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, from, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, to, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#if HAVE_STRPTIME +ZEND_BEGIN_ARG_INFO_EX(arginfo_strptime, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, timestamp, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_GETHOSTNAME) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gethostname, 0, 0, 0) +ZEND_END_ARG_INFO() +#endif + +#define arginfo_gethostbyaddr arginfo_ip2long + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gethostbyname, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gethostbynamel, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dns_check_record, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, type, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC +ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_get_record, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0) + ZEND_ARG_INFO(1, authns) + ZEND_ARG_INFO(1, addtl) + ZEND_ARG_TYPE_INFO(0, raw, _IS_BOOL, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dns_get_mx, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0) + ZEND_ARG_INFO(1, mxhosts) + ZEND_ARG_INFO(1, weight) +ZEND_END_ARG_INFO() +#endif + +#define arginfo_net_get_interfaces arginfo_ob_get_flush + #if HAVE_FTOK ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ftok, 0, 2, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, pathname, IS_STRING, 0)