]> granicus.if.org Git - php/commitdiff
- Fixed bug #35409 (undefined reference to 'rl_completion_matches')
authorfoobar <sniper@php.net>
Mon, 28 Nov 2005 16:49:35 +0000 (16:49 +0000)
committerfoobar <sniper@php.net>
Mon, 28 Nov 2005 16:49:35 +0000 (16:49 +0000)
ext/readline/config.m4
ext/readline/readline.c
sapi/cli/php_cli_readline.c

index 2ec104c3d498f47dab4ac45267e798a27b243ff4..58d21765c14796daebb5201b11efe5a3b27c7685 100644 (file)
@@ -59,8 +59,6 @@ if test "$PHP_READLINE" != "no"; then
     -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
   ])
 
-  PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
-  PHP_SUBST(READLINE_SHARED_LIBADD)
   AC_DEFINE(HAVE_LIBREADLINE, 1, [ ])
 
 elif test "$PHP_LIBEDIT" != "no"; then
@@ -94,7 +92,11 @@ elif test "$PHP_LIBEDIT" != "no"; then
     -L$READLINE_DIR/$PHP_LIBDIR 
   ])
 
+  AC_DEFINE(HAVE_LIBEDIT, 1, [ ])
+fi
+
+if test "$PHP_READLINE" != "no" || test "$PHP_LIBEDIT" != "no"; then
+  AC_CHECK_FUNCS([rl_completion_matches])
   PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
   PHP_SUBST(READLINE_SHARED_LIBADD)
-  AC_DEFINE(HAVE_LIBEDIT, 1, [ ])
 fi
index 8dbfb46157c8602d190dcd3024180e6348b195cd..071bb0810fcc34b0fa67942a94ba844f65fcc0ec 100644 (file)
 
 #if HAVE_LIBREADLINE || HAVE_LIBEDIT
 
+#ifndef HAVE_RL_COMPLETION_MATCHES
+#define rl_completion_matches completion_matches
+#endif
+
 #include <readline/readline.h>
 #ifndef HAVE_LIBEDIT
 #include <readline/history.h>
@@ -421,7 +425,7 @@ static char **_readline_completion_cb(const char *text, int start, int end)
        if (call_user_function(CG(function_table), NULL, _readline_completion, &_readline_array, 3, params TSRMLS_CC) == SUCCESS) {
                if (Z_TYPE(_readline_array) == IS_ARRAY) {
                        if (zend_hash_num_elements(Z_ARRVAL(_readline_array))) {
-                               matches = completion_matches(text,_readline_command_generator);
+                               matches = rl_completion_matches(text,_readline_command_generator);
                        } else {
                                matches = malloc(sizeof(char *) * 2);
                                matches[0] = strdup("");
index ed6362d99d1a5876850371973ffef941f9bd78e5..3f125d8e2a06cd2e0ad27544949634f717e1f1cf 100644 (file)
 
 #if (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
 
+#ifndef HAVE_RL_COMPLETION_MATCHES
+#define rl_completion_matches completion_matches
+#endif
+
 #include "php_globals.h"
 #include "php_variables.h"
 #include "zend_hash.h"