]> granicus.if.org Git - php/commitdiff
Add readline arginfo stubs
authorStephen Reay <stephen.reay@me.com>
Mon, 12 Aug 2019 12:39:09 +0000 (14:39 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Mon, 12 Aug 2019 14:03:26 +0000 (16:03 +0200)
ext/readline/readline.c
ext/readline/readline.stub.php [new file with mode: 0644]
ext/readline/readline_arginfo.h [new file with mode: 0644]

index b9435521ca8baeca9964b7f187bee28e51805b4c..9cef54d17290f6fc02f708de7199a7c3e97d119b 100644 (file)
@@ -25,6 +25,7 @@
 #include "php.h"
 #include "php_readline.h"
 #include "readline_cli.h"
+#include "readline_arginfo.h"
 
 #if HAVE_LIBREADLINE || HAVE_LIBEDIT
 
@@ -71,62 +72,6 @@ PHP_MINFO_FUNCTION(readline);
 
 /* }}} */
 
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline, 0, 0, 0)
-       ZEND_ARG_INFO(0, prompt)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_info, 0, 0, 0)
-       ZEND_ARG_INFO(0, varname)
-       ZEND_ARG_INFO(0, newvalue)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_add_history, 0, 0, 1)
-       ZEND_ARG_INFO(0, prompt)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_readline_clear_history, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_HISTORY_LIST
-ZEND_BEGIN_ARG_INFO(arginfo_readline_list_history, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_read_history, 0, 0, 0)
-       ZEND_ARG_INFO(0, filename)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_write_history, 0, 0, 0)
-       ZEND_ARG_INFO(0, filename)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_completion_function, 0, 0, 1)
-       ZEND_ARG_INFO(0, funcname)
-ZEND_END_ARG_INFO()
-
-#if HAVE_RL_CALLBACK_READ_CHAR
-ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_callback_handler_install, 0, 0, 2)
-       ZEND_ARG_INFO(0, prompt)
-       ZEND_ARG_INFO(0, callback)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_readline_callback_read_char, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_readline_callback_handler_remove, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_readline_redisplay, 0)
-ZEND_END_ARG_INFO()
-
-#if HAVE_RL_ON_NEW_LINE
-ZEND_BEGIN_ARG_INFO(arginfo_readline_on_new_line, 0)
-ZEND_END_ARG_INFO()
-#endif
-#endif
-/* }}} */
-
 /* {{{ module stuff */
 static const zend_function_entry php_readline_functions[] = {
        PHP_FE(readline,                                arginfo_readline)
diff --git a/ext/readline/readline.stub.php b/ext/readline/readline.stub.php
new file mode 100644 (file)
index 0000000..64b433a
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+/** @return string|false */
+function readline(string $prompt = null) {}
+
+/** @return mixed */
+function readline_info(string $varname = UNKNOWN, string $newvalue = UNKNOWN) {}
+
+function readline_add_history(string $prompt): bool {}
+
+function readline_clear_history(): bool {}
+
+#ifdef HAVE_HISTORY_LIST
+function readline_list_history(): array {}
+#endif
+
+function readline_read_history(string $filename = UNKNOWN): bool {}
+
+function readline_write_history(string $filename = UNKNOWN): bool {}
+
+/**
+ * @param callable $funcname
+ */
+function readline_completion_function($funcname): bool {}
+
+
+#if HAVE_RL_CALLBACK_READ_CHAR
+/**
+ * @param callable $callback
+ */
+function readline_callback_handler_install(string $prompt, $callback): bool {}
+
+function readline_callback_read_char(): void {}
+
+function readline_callback_handler_remove(): bool {}
+
+function readline_redisplay(): void {}
+
+#if HAVE_RL_ON_NEW_LINE
+function readline_on_new_line(): void {}
+#endif
+#endif
diff --git a/ext/readline/readline_arginfo.h b/ext/readline/readline_arginfo.h
new file mode 100644 (file)
index 0000000..e9ce57b
--- /dev/null
@@ -0,0 +1,58 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_readline, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, prompt, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_info, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, varname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, newvalue, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_add_history, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, prompt, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_clear_history, 0, 0, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_HISTORY_LIST)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_list_history, 0, 0, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_read_history, 0, 0, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_readline_write_history arginfo_readline_read_history
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_completion_function, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, funcname)
+ZEND_END_ARG_INFO()
+
+#if HAVE_RL_CALLBACK_READ_CHAR
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_callback_handler_install, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, prompt, IS_STRING, 0)
+       ZEND_ARG_INFO(0, callback)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_RL_CALLBACK_READ_CHAR
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_callback_read_char, 0, 0, IS_VOID, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_RL_CALLBACK_READ_CHAR
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_callback_handler_remove, 0, 0, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_RL_CALLBACK_READ_CHAR
+#define arginfo_readline_redisplay arginfo_readline_callback_read_char
+#endif
+
+#if HAVE_RL_CALLBACK_READ_CHAR && HAVE_RL_ON_NEW_LINE
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_readline_on_new_line, 0, 0, IS_VOID, 0)
+ZEND_END_ARG_INFO()
+#endif