summaryrefslogtreecommitdiff
path: root/ext/readline/readline.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/readline/readline.c')
-rw-r--r--ext/readline/readline.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 596840d768..ee7bd7b2ad 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -69,54 +69,67 @@ PHP_RSHUTDOWN_FUNCTION(readline);
/* }}} */
/* {{{ arginfo */
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_readline, 0, 0, 0)
ZEND_ARG_INFO(0, prompt)
ZEND_END_ARG_INFO()
+static
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()
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_add_history, 0, 0, 1)
ZEND_ARG_INFO(0, prompt)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_clear_history, 0)
ZEND_END_ARG_INFO()
#ifndef HAVE_LIBEDIT
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_list_history, 0)
ZEND_END_ARG_INFO()
#endif
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_read_history, 0, 0, 0)
ZEND_ARG_INFO(0, filename)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_readline_write_history, 0, 0, 0)
ZEND_ARG_INFO(0, filename)
ZEND_END_ARG_INFO()
+static
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
+static
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()
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_callback_read_char, 0)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_callback_handler_remove, 0)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_redisplay, 0)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_readline_on_new_line, 0)
ZEND_END_ARG_INFO()
#endif
@@ -169,14 +182,12 @@ PHP_MINIT_FUNCTION(readline)
PHP_RSHUTDOWN_FUNCTION(readline)
{
- if (_readline_completion) {
- zval_dtor(_readline_completion);
+ if (_readline_completion)
FREE_ZVAL(_readline_completion);
- }
#if HAVE_RL_CALLBACK_READ_CHAR
if (_prepped_callback) {
rl_callback_handler_remove();
- zval_ptr_dtor(&_prepped_callback);
+ FREE_ZVAL(_prepped_callback);
_prepped_callback = 0;
}
#endif
@@ -493,10 +504,8 @@ PHP_FUNCTION(readline_completion_function)
efree(name);
RETURN_FALSE;
}
- efree(name);
if (_readline_completion) {
- zval_dtor(_readline_completion);
FREE_ZVAL(_readline_completion);
}
@@ -544,14 +553,11 @@ PHP_FUNCTION(readline_callback_handler_install)
if (!zend_is_callable(callback, 0, &name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s is not callable", name);
- efree(name);
RETURN_FALSE;
}
- efree(name);
if (_prepped_callback) {
rl_callback_handler_remove();
- zval_dtor(_prepped_callback);
FREE_ZVAL(_prepped_callback);
}
@@ -581,7 +587,6 @@ PHP_FUNCTION(readline_callback_handler_remove)
{
if (_prepped_callback) {
rl_callback_handler_remove();
- zval_dtor(_prepped_callback);
FREE_ZVAL(_prepped_callback);
_prepped_callback = 0;
RETURN_TRUE;