PHP_ARG_WITH(xmlrpc, for XMLRPC-EPI support,
[ --with-xmlrpc[=DIR] Include XMLRPC-EPI support.])
+if test -z "$PHP_LIBXML_DIR"; then
+ PHP_ARG_WITH(libxml-dir, libxml2 install dir,
+ [ --with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix], no, no)
+fi
+
PHP_ARG_WITH(expat-dir, libexpat dir for XMLRPC-EPI,
-[ --with-expat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI.],no,no)
+[ --with-expat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI. (deprecated)],no,no)
PHP_ARG_WITH(iconv-dir, iconv dir for XMLRPC-EPI,
[ --with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI.],no,no)
if test "$PHP_XMLRPC" != "no"; then
+ PHP_ADD_EXTENSION_DEP(xmlrpc, libxml)
PHP_SUBST(XMLRPC_SHARED_LIBADD)
AC_DEFINE(HAVE_XMLRPC,1,[ ])
- testval=no
- for i in $PHP_EXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
- if test -f $i/$PHP_LIBDIR/libexpat.a -o -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then
- AC_DEFINE(HAVE_LIBEXPAT2,1,[ ])
- PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
- PHP_ADD_INCLUDE($i/include)
- testval=yes
- break
+ dnl
+ dnl Default to libxml2.
+ dnl
+ PHP_SETUP_LIBXML(XMLRPC_SHARED_LIBADD, [
+ if test "$PHP_XML" = "no"; then
+ PHP_ADD_SOURCES(ext/xml, compat.c)
+ PHP_ADD_BUILD_DIR(ext/xml)
+ fi
+ ], [
+ if test "$PHP_EXPAT_DIR" = "no"; then
+ AC_MSG_ERROR([xml2-config not found. Use --with-libxml-dir=<DIR>])
fi
- done
+ ])
- if test "$testval" = "no"; then
- AC_MSG_ERROR(XML-RPC support requires libexpat. Use --with-expat-dir=<DIR>)
+ if test "$PHP_EXPAT_DIR" != "no"; then
+ testval=no
+ for i in $PHP_EXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
+ if test -f $i/$PHP_LIBDIR/libexpat.a -o -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then
+ AC_DEFINE(HAVE_LIBEXPAT,1,[ ])
+ PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($i/include)
+ testval=yes
+ break
+ fi
+ done
+
+ if test "$testval" = "no"; then
+ AC_MSG_ERROR(XML-RPC support requires libexpat. Use --with-expat-dir=<DIR>)
+ fi
fi
if test "$PHP_ICONV_DIR" != "no"; then
])
fi
-
if test "$PHP_XMLRPC" = "yes"; then
XMLRPC_CHECKS
PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c libxmlrpc/base64.c \
PHP_ADD_INCLUDE($XMLRPC_DIR)
PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
+ PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c, $ext_shared)
+ XMLRPC_MODULE_TYPE=external
fi
-
* 06/2000
* HISTORY
* $Log$
+ * Revision 1.6 2004/06/01 20:16:06 iliaa
+ * Fixed bug #28597 (xmlrpc_encode_request() incorrectly encodes chars in
+ * 200-210 range).
+ * Patch by: fernando dot nemec at folha dot com dot br
+ *
* Revision 1.5 2003/12/16 21:00:21 sniper
* Fix some compile warnings (patch by Joe Orton)
*
#include "xml_element.h"
#include "queue.h"
-#include "expat.h"
+#include "ext/xml/expat_compat.h"
#include "encodings.h"
#define my_free(thing) if(thing) {free(thing); thing = 0;}
/* expat start of element handler */
-static void startElement(void *userData, const char *name, const char **attrs)
+static void _xmlrpc_startElement(void *userData, const char *name, const char **attrs)
{
xml_element *c;
xml_elem_data* mydata = (xml_elem_data*)userData;
}
/* expat end of element handler */
-static void endElement(void *userData, const char *name)
+static void _xmlrpc_endElement(void *userData, const char *name)
{
xml_elem_data* mydata = (xml_elem_data*)userData;
}
/* expat char data handler */
-static void charHandler(void *userData,
+static void _xmlrpc_charHandler(void *userData,
const char *s,
int len)
{
mydata.input_options = options;
mydata.needs_enc_conversion = options->encoding && strcmp(options->encoding, encoding_utf_8);
- XML_SetElementHandler(parser, startElement, endElement);
- XML_SetCharacterDataHandler(parser, charHandler);
+ XML_SetElementHandler(parser, _xmlrpc_startElement, _xmlrpc_endElement);
+ XML_SetCharacterDataHandler(parser, _xmlrpc_charHandler);
/* pass the xml_elem_data struct along */
XML_SetUserData(parser, (void*)&mydata);