summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThies C. Arntzen <thies@php.net>1999-10-14 16:53:51 +0000
committerThies C. Arntzen <thies@php.net>1999-10-14 16:53:51 +0000
commit185d90fe22ccaec0cf5f35b686cd13633b23c0d6 (patch)
tree903ef00b1f8b7ea643310b3f846712479d06d091
parentead9008644c966fcd0a4d9a02033db2b163cf9f7 (diff)
downloadphp-git-185d90fe22ccaec0cf5f35b686cd13633b23c0d6.tar.gz
configure works for me (RH 6.1)
@- Added readline support. Works *only* in standalone mode! (Thies)
-rw-r--r--ext/readline/config.m431
-rw-r--r--ext/readline/php_readline.h7
-rw-r--r--ext/readline/readline.c10
3 files changed, 44 insertions, 4 deletions
diff --git a/ext/readline/config.m4 b/ext/readline/config.m4
index 530679ebc6..6a7f70acd4 100644
--- a/ext/readline/config.m4
+++ b/ext/readline/config.m4
@@ -2,6 +2,33 @@ dnl $Id$
dnl config.m4 for extension readline
dnl don't forget to call PHP_EXTENSION(readline)
-dnl AC_DEFINE(HAVE_LIBREADLINE, 1)
-dnl PHP_EXTENSION(readline)
+AC_MSG_CHECKING(for readline support)
+AC_ARG_WITH(readline,
+[ --with-readline[=DIR] Include readline support. DIR is the readline
+ install directory.],
+[
+ if test "$withval" != "no"; then
+ for i in $withval /usr/local /usr; do
+ if test -f $i/include/readline/readline.h; then
+ READLINE_DIR=$i
+ fi
+ done
+ if test "$READLINE_DIR" = ""; then
+ AC_MSG_ERROR(Please reinstall readline - I cannot find readline.h)
+ fi
+ AC_ADD_INCLUDE($READLINE_DIR/include)
+ AC_ADD_LIBRARY_WITH_PATH(readline, $READLINE_DIR/lib)
+ AC_ADD_LIBRARY_WITH_PATH(history, $READLINE_DIR/lib)
+ AC_ADD_LIBRARY(termcap)
+
+ AC_MSG_RESULT(yes)
+
+ AC_DEFINE(HAVE_LIBREADLINE, 1)
+ PHP_EXTENSION(readline)
+ else
+ AC_MSG_RESULT(no)
+ fi
+],[
+ AC_MSG_RESULT(no)
+])
diff --git a/ext/readline/php_readline.h b/ext/readline/php_readline.h
index 6080489258..72ca7187d0 100644
--- a/ext/readline/php_readline.h
+++ b/ext/readline/php_readline.h
@@ -22,6 +22,13 @@
#define _PHP_READLINE_H
#if HAVE_LIBREADLINE
+#ifdef ZTS
+#error Readline module will *NEVER* be thread-safe
+#endif
+
+#ifndef CGI_BINARY
+#error Readline module only useable in standalone-binary
+#endif
extern zend_module_entry readline_module_entry;
#define phpext_readline_ptr &readline_module_entry
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 5f504a64e6..0fae8d1b31 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -18,14 +18,16 @@
/* $Id$ */
+/* {{{ includes & prototypes */
+
#include "php.h"
+#include "php_readline.h"
#if HAVE_LIBREADLINE
#include <readline/readline.h>
#include <readline/history.h>
-
PHP_FUNCTION(readline);
PHP_FUNCTION(readline_version);
@@ -36,6 +38,9 @@ PHP_FUNCTION(readline_write_history);
PHP_MINIT_FUNCTION(readline);
+/* }}} */
+/* {{{ module stuff */
+
static zend_function_entry php_readline_functions[] = {
PHP_FE(readline, NULL)
PHP_FE(readline_version, NULL)
@@ -46,7 +51,7 @@ static zend_function_entry php_readline_functions[] = {
{NULL, NULL, NULL}
};
-zend_module_entry readline_module_entry = {
+zend_module_entry readline_module_entry = {
"PHP-Readline",
php_readline_functions,
PHP_MINIT(readline),
@@ -62,6 +67,7 @@ PHP_MINIT_FUNCTION(readline)
return SUCCESS;
}
+/* }}} */
/* {{{ proto string readline([string prompt]) */
PHP_FUNCTION(readline)