From: Michael Wallner Date: Fri, 10 Jan 2014 13:31:45 +0000 (+0100) Subject: Merged in remicollet/ext-ircclient/issue-030 (pull request #1) X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-ircclient;a=commitdiff_plain;h=dd364374c8d0e89c021dcaec1936d0a6d11f58be;hp=01c50c608a51a36f321bee34df10bff64623ad34 Merged in remicollet/ext-ircclient/issue-030 (pull request #1) Various bug fixes on v 0.3.0 --- diff --git a/config.m4 b/config.m4 index c8940da..d238bbe 100644 --- a/config.m4 +++ b/config.m4 @@ -5,20 +5,25 @@ if test "$PHP_IRCCLIENT" != "no"; then AC_PROG_EGREP AC_PROG_SED - AC_MSG_CHECKING([for libircclient/libircclient.h]) + AC_MSG_CHECKING([for libircclient.h]) for d in $PHP_IRCCLIENT /usr /usr/local /opt; do - if test -f $d/include/libircclient/libircclient.h; then + if test -f $d/include/libircclient.h; then + IRCCLIENT_INCDIR=$d/include + IRCCLIENT_LIBDIR=$d/$PHP_LIBDIR AC_MSG_RESULT([found in $d]) - IRCCLIENT_DIR=$d + elif test -f $d/include/libircclient/libircclient.h; then + AC_MSG_RESULT([found in $d]) + IRCCLIENT_INCDIR=$d/include/libircclient + IRCCLIENT_LIBDIR=$d/$PHP_LIBDIR break fi done - if test "x$IRCCLIENT_DIR" = "x"; then + if test "x$IRCCLIENT_INCDIR" = "x"; then AC_MSG_ERROR([not found]) fi - if test -f "$IRCCLIENT_DIR/include/libircclient/libirc_params.h"; then - PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH=`$EGREP "define LIBIRC_VERSION_HIGH" $IRCCLIENT_DIR/include/libircclient/libirc_params.h | $SED -e 's/[[^0-9\x]]//g'` - PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW=`$EGREP "define LIBIRC_VERSION_LOW" $IRCCLIENT_DIR/include/libircclient/libirc_params.h | $SED -e 's/[[^0-9\x]]//g'` + if test -f "$IRCCLIENT_INCDIR/libirc_params.h"; then + PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH=`$EGREP "define LIBIRC_VERSION_HIGH" $IRCCLIENT_INCDIR/libirc_params.h | $SED -e 's/[[^0-9\x]]//g'` + PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW=`$EGREP "define LIBIRC_VERSION_LOW" $IRCCLIENT_INCDIR/libirc_params.h | $SED -e 's/[[^0-9\x]]//g'` else PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH=0 PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW=0 @@ -26,20 +31,20 @@ if test "$PHP_IRCCLIENT" != "no"; then AC_DEFINE_UNQUOTED([PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH], [$PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH], [ ]) AC_DEFINE_UNQUOTED([PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW], [$PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW], [ ]) - PHP_ADD_INCLUDE($IRCCLIENT_DIR/include) + PHP_ADD_INCLUDE($IRCCLIENT_INCDIR) AC_CHECK_MEMBER([irc_callbacks_t.event_channel_notice], [ AC_DEFINE(HAVE_LIBIRCCLIENT_EVENT_CHANNEL_NOTICE, 1, [ ]) ], [], [ - [#include ] + [#include ] ]) PHP_CHECK_LIBRARY(ircclient, irc_create_session, [ - PHP_ADD_LIBRARY_WITH_PATH(ircclient, $IRCCLIENT_DIR/lib, IRCCLIENT_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(ircclient, $IRCCLIENT_LIBDIR, IRCCLIENT_SHARED_LIBADD) AC_DEFINE(HAVE_LIBIRCCLIENT,1,[ ]) ],[ AC_MSG_ERROR([libircclient not found]) ],[ - -L$IRCCLIENT_DIR/lib -lm + -L$IRCCLIENT_LIBDIR -lm ]) PHP_SUBST([IRCCLIENT_SHARED_LIBADD]) PHP_NEW_EXTENSION([ircclient], [php_ircclient.c], [$ext_shared]) diff --git a/php_ircclient.c b/php_ircclient.c index e7134a1..022d298 100644 --- a/php_ircclient.c +++ b/php_ircclient.c @@ -19,6 +19,7 @@ #include
#include #include +#include #include #include @@ -32,7 +33,7 @@ #include #include -#include +#include PHP_FUNCTION(parse_origin) { @@ -418,7 +419,7 @@ PHP_METHOD(Session, doConnect) if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "bs|ls!", &ip6, &server_str, &server_len, &port, &passwd_str, &passwd_len)) { php_ircclient_session_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); char *nick = NULL, *user = NULL, *real = NULL; - zval *znick, *zuser, *zreal, *tmp; + zval *znick, *zuser, *zreal; znick = zend_read_property(php_ircclient_session_class_entry, getThis(), ZEND_STRL("nick"), 0 TSRMLS_CC); SEPARATE_ARG_IF_REF(znick); @@ -1420,8 +1421,12 @@ PHP_MINFO_FUNCTION(ircclient) irc_get_version(&high, &low); spprintf(&version[1], 0, "%u.%u", high, low); +#if PHP_IPHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH spprintf(&version[0], 0, "%u.%u", PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_HIGH, PHP_IRCCLIENT_LIBIRCCLIENT_VERSION_LOW); - +#else + /* version <= 1.6 doesn't exposed its version */ + spprintf(&version[0], 0, "-"); +#endif php_info_print_table_start(); php_info_print_table_header(2, "IRC client support", "enabled"); php_info_print_table_row(2, "Version", PHP_IRCCLIENT_VERSION);