diff options
Diffstat (limited to 'ext/readline/readline.c')
-rw-r--r-- | ext/readline/readline.c | 25 |
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; |