Commit bca1b7f2 authored by Alexandre Julliard's avatar Alexandre Julliard

mxsml3: Use the bundled libxml2 and libxslt and build with msvcrt.

parent c638618c
......@@ -98,7 +98,6 @@ AC_ARG_WITH(xinput, AS_HELP_STRING([--without-xinput],[do not use the Xinput
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput_h=no; fi])
AC_ARG_WITH(xinput2, AS_HELP_STRING([--without-xinput2],[do not use the Xinput 2 extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput2_h=no; fi])
AC_ARG_WITH(xml, AS_HELP_STRING([--without-xml],[do not use XML]))
AC_ARG_WITH(xrandr, AS_HELP_STRING([--without-xrandr],[do not use Xrandr (multi-monitor support)]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrandr_h=no; fi])
AC_ARG_WITH(xrender, AS_HELP_STRING([--without-xrender],[do not use the Xrender extension]),
......@@ -107,7 +106,6 @@ AC_ARG_WITH(xshape, AS_HELP_STRING([--without-xshape],[do not use the Xshape
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_shape_h=no; fi])
AC_ARG_WITH(xshm, AS_HELP_STRING([--without-xshm],[do not use XShm (shared memory extension)]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi])
AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt],[do not use XSLT]))
AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree video mode extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; ac_cv_header_X11_extensions_xf86vmproto_h=no; fi])
......@@ -1300,55 +1298,6 @@ WINE_NOTICE_WITH(pcap,[test "x$ac_cv_lib_pcap_pcap_create" != xyes],
[pcap ${notice_platform}development files not found, wpcap won't be supported.],
[enable_wpcap])
dnl **** Check for libxml2 ****
if test "x$with_xml" != "xno"
then
WINE_PACKAGE_FLAGS(XML2,[libxml-2.0],[-lxml2],
[`${XML2_CONFIG:-xml2-config} --cflags 2>/dev/null`],[`${XML2_CONFIG:-xml2-config} --libs 2>/dev/null`],
[AC_CHECK_HEADERS([libxml/parser.h libxml/xmlsave.h libxml/SAX2.h])
if test "$ac_cv_header_libxml_parser_h" = "yes" -a "$ac_cv_header_libxml_xmlsave_h" = "yes" -a "$ac_cv_header_libxml_SAX2_h" = "yes"
then
AC_CHECK_LIB(xml2, xmlParseMemory,
[AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])],[XML2_LIBS=""],[$XML2_LIBS])
AC_CHECK_LIB(xml2, xmlReadMemory,
[AC_DEFINE(HAVE_XMLREADMEMORY,1,[Define if libxml2 has the xmlReadMemory function])],,[$XML2_LIBS])
AC_CHECK_LIB(xml2, xmlNewDocPI,
[AC_DEFINE(HAVE_XMLNEWDOCPI,1,[Define if libxml2 has the xmlNewDocPI function])],,[$XML2_LIBS])
AC_CHECK_LIB(xml2, xmlSchemaSetParserStructuredErrors,
[AC_DEFINE(HAVE_XMLSCHEMASSETPARSERSTRUCTUREDERRORS,1,[Define if libxml2 has the xmlSchemaSetParserStructuredErrors function])],,[$XML2_LIBS])
AC_CHECK_LIB(xml2, xmlSchemaSetValidStructuredErrors,
[AC_DEFINE(HAVE_XMLSCHEMASSETVALIDSTRUCTUREDERRORS,1,[Define if libxml2 has the xmlSchemaSetValidStructuredErrors function])],,[$XML2_LIBS])
AC_CHECK_LIB(xml2, xmlFirstElementChild,
[AC_DEFINE(HAVE_XMLFIRSTELEMENTCHILD,1,[Define if libxml2 has the xmlFirstElementChild function])],,[$XML2_LIBS])
AC_CHECK_TYPE([xmlDocProperties],
[AC_DEFINE(HAVE_XMLDOC_PROPERTIES,1,[Define if libxml2 has the xmlDocProperties enum])],,[[#include <libxml/tree.h>]])
else
XML2_CFLAGS=""
XML2_LIBS=""
fi])
fi
WINE_WARNING_WITH(xml,[test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"],
[libxml2 ${notice_platform}development files not found (or too old), XML won't be supported.])
if test "x$with_xslt" != "xno"
then
WINE_PACKAGE_FLAGS(XSLT,[libxslt],[-lxml2],
[`${XSLT_CONFIG:-xslt-config} --cflags 2>/dev/null`],[`${XSLT_CONFIG:-xslt-config} --libs 2>/dev/null`],
[AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],,,
[#ifdef HAVE_LIBXSLT_PATTERN_H
# include <libxslt/pattern.h>
#endif])
if test "$ac_cv_header_libxslt_transform_h" = "yes"
then
WINE_CHECK_SONAME(xslt,xsltCompilePattern,,,[$XSLT_LIBS])
else
XSLT_CFLAGS=""
fi])
fi
WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"],
[libxslt ${notice_platform}development files not found, xslt won't be supported.])
dnl **** Check for inotify ****
if test "x$with_inotify" != "xno"
then
......
MODULE = msxml3.dll
IMPORTS = uuid urlmon shlwapi oleaut32 ole32 user32 advapi32
EXTRALIBS = $(XML2_LIBS)
EXTRAINCL = $(XML2_CFLAGS) $(XSLT_CFLAGS)
EXTRADLLFLAGS = -mcygwin
IMPORTS = $(XSLT_PE_LIBS) $(XML2_PE_LIBS) uuid urlmon shlwapi oleaut32 ole32 user32 advapi32
EXTRAINCL = $(XSLT_PE_CFLAGS) $(XML2_PE_CFLAGS)
C_SRCS = \
attribute.c \
......
......@@ -20,14 +20,10 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
# include <libxml/HTMLtree.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include <libxml/HTMLtree.h>
#include "windef.h"
#include "winbase.h"
......@@ -39,8 +35,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static const xmlChar xmlns[] = "xmlns";
......@@ -738,5 +732,3 @@ IUnknown* create_attribute( xmlNodePtr attribute, BOOL floating )
return (IUnknown*)&This->IXMLDOMAttribute_iface;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -38,8 +34,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct
......@@ -898,5 +892,3 @@ IUnknown* create_cdata( xmlNodePtr text )
return (IUnknown*)&This->IXMLDOMCDATASection_iface;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -38,8 +34,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _domcomment
......@@ -849,5 +843,3 @@ IUnknown* create_comment( xmlNodePtr comment )
return (IUnknown*)&This->IXMLDOMComment_iface;
}
#endif
......@@ -236,12 +236,12 @@ static void add_func_info(dispex_data_t *data, DWORD *size, tid_t tid, DISPID id
data->func_cnt++;
}
static int dispid_cmp(const void *p1, const void *p2)
static int __cdecl dispid_cmp(const void *p1, const void *p2)
{
return ((const func_info_t*)p1)->id - ((const func_info_t*)p2)->id;
}
static int func_name_cmp(const void *p1, const void *p2)
static int __cdecl func_name_cmp(const void *p1, const void *p2)
{
return lstrcmpiW((*(func_info_t* const*)p1)->name, (*(func_info_t* const*)p2)->name);
}
......@@ -426,7 +426,7 @@ static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DW
c = lstrcmpiW(data->name_table[n]->name, bstrName);
if(!c) {
if((grfdex & fdexNameCaseSensitive) && lstrcmpW(data->name_table[n]->name, bstrName))
if((grfdex & fdexNameCaseSensitive) && wcscmp(data->name_table[n]->name, bstrName))
break;
*pid = data->name_table[n]->id;
......
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -38,8 +34,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _domfrag
......@@ -599,5 +593,3 @@ IUnknown* create_doc_fragment( xmlNodePtr fragment )
return (IUnknown*)&This->IXMLDOMDocumentFragment_iface;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -39,8 +35,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _domdoctype
......@@ -589,5 +583,3 @@ IUnknown* create_doc_type( xmlNodePtr doctype )
return (IUnknown*)&This->IXMLDOMDocumentType_iface;
}
#endif
......@@ -21,18 +21,14 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#include <assert.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
# include <libxml/xpathInternals.h>
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include <libxml/xpathInternals.h>
# include <libxml/xmlsave.h>
# include <libxml/SAX2.h>
# include <libxml/parserInternals.h>
#endif
#include <libxml/SAX2.h>
#include <libxml/parserInternals.h>
#include "windef.h"
#include "winbase.h"
......@@ -51,8 +47,6 @@
#include "msxml_private.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
/* not defined in older versions */
......@@ -2140,12 +2134,7 @@ static HRESULT WINAPI domdoc_createNode(
xmlnode = xmlNewReference(get_doc(This), xml_name);
break;
case NODE_PROCESSING_INSTRUCTION:
#ifdef HAVE_XMLNEWDOCPI
xmlnode = xmlNewDocPI(get_doc(This), xml_name, NULL);
#else
FIXME("xmlNewDocPI() not supported, use libxml2 2.6.15 or greater\n");
xmlnode = NULL;
#endif
break;
case NODE_COMMENT:
xmlnode = xmlNewDocComment(get_doc(This), NULL);
......@@ -2496,9 +2485,9 @@ static HRESULT WINAPI domdoc_loadXML(
/* skip leading spaces if needed */
if (This->properties->version == MSXML_DEFAULT || This->properties->version == MSXML26)
while (*ptr && isspaceW(*ptr)) ptr++;
while (*ptr && iswspace(*ptr)) ptr++;
xmldoc = doparse(This, (char*)ptr, strlenW(ptr)*sizeof(WCHAR), XML_CHAR_ENCODING_UTF16LE);
xmldoc = doparse(This, (char*)ptr, lstrlenW(ptr)*sizeof(WCHAR), XML_CHAR_ENCODING_UTF16LE);
if ( !xmldoc )
{
This->error = E_FAIL;
......@@ -2901,32 +2890,7 @@ static HRESULT WINAPI domdoc_putref_schemas(
static inline BOOL is_wellformed(xmlDocPtr doc)
{
#ifdef HAVE_XMLDOC_PROPERTIES
return doc->properties & XML_DOC_WELLFORMED;
#else
/* Not a full check, but catches the worst violations */
xmlNodePtr child;
int root = 0;
for (child = doc->children; child != NULL; child = child->next)
{
switch (child->type)
{
case XML_ELEMENT_NODE:
if (++root > 1)
return FALSE;
break;
case XML_TEXT_NODE:
case XML_CDATA_SECTION_NODE:
return FALSE;
break;
default:
break;
}
}
return root == 1;
#endif
}
static void LIBXML2_LOG_CALLBACK validate_error(void* ctx, char const* msg, ...)
......@@ -3837,14 +3801,3 @@ IUnknown* create_domdoc( xmlNodePtr document )
return obj;
}
#else
HRESULT dom_document_create(MSXML_VERSION version, void **ppObj)
{
MESSAGE("This program tried to use a DOMDocument object, but\n"
"libxml2 support was not present at compile time.\n");
return E_NOTIMPL;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -39,8 +35,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static const xmlChar DT_prefix[] = "dt";
......@@ -504,9 +498,9 @@ static inline HRESULT variant_from_dt(XDR_DT dt, xmlChar* str, VARIANT* v)
if(p+4<e && *(p+4)=='-') /* parse date (yyyy-mm-dd) */
{
st.wYear = atoiW(p);
st.wMonth = atoiW(p+5);
st.wDay = atoiW(p+8);
st.wYear = wcstol(p, NULL, 10);
st.wMonth = wcstol(p+5, NULL, 10);
st.wDay = wcstol(p+8, NULL, 10);
p += 10;
if(*p == 'T') p++;
......@@ -514,9 +508,9 @@ static inline HRESULT variant_from_dt(XDR_DT dt, xmlChar* str, VARIANT* v)
if(p+2<e && *(p+2)==':') /* parse time (hh:mm:ss.?) */
{
st.wHour = atoiW(p);
st.wMinute = atoiW(p+3);
st.wSecond = atoiW(p+6);
st.wHour = wcstol(p, NULL, 10);
st.wMinute = wcstol(p+3, NULL, 10);
st.wSecond = wcstol(p+6, NULL, 10);
p += 8;
if(*p == '.')
......@@ -531,9 +525,9 @@ static inline HRESULT variant_from_dt(XDR_DT dt, xmlChar* str, VARIANT* v)
V_DATE(v) = date;
if(*p == '+') /* parse timezone offset (+hh:mm) */
V_DATE(v) += (DOUBLE)atoiW(p+1)/24 + (DOUBLE)atoiW(p+4)/1440;
V_DATE(v) += (DOUBLE)wcstol(p+1, NULL, 10)/24 + (DOUBLE)wcstol(p+4, NULL, 10)/1440;
else if(*p == '-') /* parse timezone offset (-hh:mm) */
V_DATE(v) -= (DOUBLE)atoiW(p+1)/24 + (DOUBLE)atoiW(p+4)/1440;
V_DATE(v) -= (DOUBLE)wcstol(p+1, NULL, 10)/24 + (DOUBLE)wcstol(p+4, NULL, 10)/1440;
VariantClear(&src);
handled = TRUE;
......@@ -1440,7 +1434,7 @@ static HRESULT WINAPI domelem_setAttributeNode(
if (hr != S_OK) return hr;
/* adding xmlns attribute doesn't change a tree or existing namespace definition */
if (!strcmpW(nameW, xmlnsW))
if (!wcscmp(nameW, xmlnsW))
{
SysFreeString(nameW);
return DISP_E_UNKNOWNNAME;
......@@ -1944,5 +1938,3 @@ IUnknown* create_element( xmlNodePtr element )
return (IUnknown*)&This->IXMLDOMElement_iface;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -38,8 +34,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _entityref
......@@ -594,5 +588,3 @@ IUnknown* create_doc_entity_ref( xmlNodePtr entity )
return (IUnknown*)&This->IXMLDOMEntityReference_iface;
}
#endif
......@@ -21,13 +21,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......
......@@ -40,7 +40,6 @@
#include "msxml_dispex.h"
#include "wine/debug.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
......@@ -390,7 +389,7 @@ static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
if (This->request->verb == BINDVERB_CUSTOM)
{
pbindinfo->szCustomVerb = CoTaskMemAlloc(SysStringByteLen(This->request->custom)+sizeof(WCHAR));
strcpyW(pbindinfo->szCustomVerb, This->request->custom);
lstrcpyW(pbindinfo->szCustomVerb, This->request->custom);
}
return S_OK;
......@@ -513,10 +512,10 @@ static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate *ifac
if (base_uri)
{
strcpyW(ptr, refererW);
strcatW(ptr, base_uri);
strcatW(ptr, crlfW);
ptr += strlenW(refererW) + SysStringLen(base_uri) + strlenW(crlfW);
lstrcpyW(ptr, refererW);
lstrcatW(ptr, base_uri);
lstrcatW(ptr, crlfW);
ptr += lstrlenW(refererW) + SysStringLen(base_uri) + lstrlenW(crlfW);
SysFreeString(base_uri);
}
......@@ -592,11 +591,11 @@ static HRESULT WINAPI BSCHttpNegotiate_OnResponse(IHttpNegotiate *iface, DWORD c
ptr = line = resp_headers;
/* skip HTTP-Version */
ptr = strchrW(ptr, ' ');
ptr = wcschr(ptr, ' ');
if (ptr)
{
/* skip Status-Code */
ptr = strchrW(++ptr, ' ');
ptr = wcschr(++ptr, ' ');
if (ptr)
{
status_text = ++ptr;
......@@ -864,7 +863,7 @@ static HRESULT verify_uri(httprequest *This, IUri *uri)
hr = IUri_GetHost(This->base_uri, &base_host);
if(SUCCEEDED(hr)) {
if(strcmpiW(host, base_host)) {
if(wcsicmp(host, base_host)) {
WARN("Hosts don't match\n");
hr = E_ACCESSDENIED;
}
......@@ -901,21 +900,21 @@ static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
This->user = This->password = NULL;
free_request_headers(This);
if (!strcmpiW(method, MethodGetW))
if (!wcsicmp(method, MethodGetW))
{
This->verb = BINDVERB_GET;
}
else if (!strcmpiW(method, MethodPutW))
else if (!wcsicmp(method, MethodPutW))
{
This->verb = BINDVERB_PUT;
}
else if (!strcmpiW(method, MethodPostW))
else if (!wcsicmp(method, MethodPostW))
{
This->verb = BINDVERB_POST;
}
else if (!strcmpiW(method, MethodDeleteW) ||
!strcmpiW(method, MethodHeadW) ||
!strcmpiW(method, MethodPropFindW))
else if (!wcsicmp(method, MethodDeleteW) ||
!wcsicmp(method, MethodHeadW) ||
!wcsicmp(method, MethodPropFindW))
{
This->verb = BINDVERB_CUSTOM;
SysReAllocString(&This->custom, method);
......@@ -1000,7 +999,7 @@ static HRESULT httprequest_setRequestHeader(httprequest *This, BSTR header, BSTR
/* replace existing header value if already added */
LIST_FOR_EACH_ENTRY(entry, &This->reqheaders, struct httpheader, entry)
{
if (lstrcmpW(entry->header, header) == 0)
if (wcscmp(entry->header, header) == 0)
{
LONG length = SysStringLen(entry->value);
HRESULT hr;
......@@ -1056,7 +1055,7 @@ static HRESULT httprequest_getResponseHeader(httprequest *This, BSTR header, BST
LIST_FOR_EACH_ENTRY(entry, &This->respheaders, struct httpheader, entry)
{
if (!strcmpiW(entry->header, header))
if (!wcsicmp(entry->header, header))
{
*value = SysAllocString(entry->value);
TRACE("header value %s\n", debugstr_w(*value));
......
......@@ -19,31 +19,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include "wine/port.h"
#define COBJMACROS
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
# ifdef SONAME_LIBXSLT
# ifdef HAVE_LIBXSLT_PATTERN_H
# include <libxslt/pattern.h>
# endif
# ifdef HAVE_LIBXSLT_TRANSFORM_H
# include <libxslt/transform.h>
# endif
# include <libxslt/imports.h>
# include <libxslt/xsltutils.h>
# include <libxslt/variables.h>
# include <libxslt/xsltInternals.h>
# include <libxslt/documents.h>
# include <libxslt/extensions.h>
# include <libxslt/extra.h>
# endif
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include <libxslt/pattern.h>
#include <libxslt/transform.h>
#include <libxslt/imports.h>
#include <libxslt/xsltutils.h>
#include <libxslt/variables.h>
#include <libxslt/xsltInternals.h>
#include <libxslt/documents.h>
#include <libxslt/extensions.h>
#include <libxslt/extra.h>
#include "windef.h"
#include "winbase.h"
......@@ -54,15 +43,12 @@
#include "msxml2.h"
#include "msxml6.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "msxml_private.h"
HINSTANCE MSXML_hInstance = NULL;
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap)
......@@ -166,68 +152,14 @@ static int wineXmlFileCloseCallback (void * context)
return CloseHandle(context) ? 0 : -1;
}
void* libxslt_handle = NULL;
#ifdef SONAME_LIBXSLT
# define DECL_FUNCPTR(f) typeof(f) * p##f = NULL
DECL_FUNCPTR(xsltApplyStylesheet);
DECL_FUNCPTR(xsltApplyStylesheetUser);
DECL_FUNCPTR(xsltCleanupGlobals);
DECL_FUNCPTR(xsltFreeStylesheet);
DECL_FUNCPTR(xsltFreeTransformContext);
DECL_FUNCPTR(xsltFunctionNodeSet);
DECL_FUNCPTR(xsltNewTransformContext);
DECL_FUNCPTR(xsltNextImport);
DECL_FUNCPTR(xsltParseStylesheetDoc);
DECL_FUNCPTR(xsltQuoteUserParams);
DECL_FUNCPTR(xsltRegisterExtModuleFunction);
DECL_FUNCPTR(xsltSaveResultTo);
DECL_FUNCPTR(xsltSetLoaderFunc);
# undef DECL_FUNCPTR
#endif
static void init_libxslt(void)
{
#ifdef SONAME_LIBXSLT
void (*pxsltInit)(void); /* Missing in libxslt <= 1.1.14 */
libxslt_handle = dlopen(SONAME_LIBXSLT, RTLD_NOW);
if (!libxslt_handle)
return;
#define LOAD_FUNCPTR(f, needed) \
if ((p##f = dlsym(libxslt_handle, #f)) == NULL) \
if (needed) { WARN("Can't find symbol %s\n", #f); goto sym_not_found; }
LOAD_FUNCPTR(xsltInit, 0);
LOAD_FUNCPTR(xsltApplyStylesheet, 1);
LOAD_FUNCPTR(xsltApplyStylesheetUser, 1);
LOAD_FUNCPTR(xsltCleanupGlobals, 1);
LOAD_FUNCPTR(xsltFreeStylesheet, 1);
LOAD_FUNCPTR(xsltFreeTransformContext, 1);
LOAD_FUNCPTR(xsltFunctionNodeSet, 1);
LOAD_FUNCPTR(xsltNewTransformContext, 1);
LOAD_FUNCPTR(xsltNextImport, 1);
LOAD_FUNCPTR(xsltParseStylesheetDoc, 1);
LOAD_FUNCPTR(xsltQuoteUserParams, 1);
LOAD_FUNCPTR(xsltRegisterExtModuleFunction, 1);
LOAD_FUNCPTR(xsltSaveResultTo, 1);
LOAD_FUNCPTR(xsltSetLoaderFunc, 1);
#undef LOAD_FUNCPTR
if (pxsltInit)
pxsltInit();
pxsltSetLoaderFunc(xslt_doc_default_loader);
pxsltRegisterExtModuleFunction(
xsltInit();
xsltSetLoaderFunc(xslt_doc_default_loader);
xsltRegisterExtModuleFunction(
(const xmlChar *)"node-set",
(const xmlChar *)"urn:schemas-microsoft-com:xslt",
pxsltFunctionNodeSet);
return;
sym_not_found:
dlclose(libxslt_handle);
libxslt_handle = NULL;
#endif
xsltFunctionNodeSet);
}
static int to_utf8(int cp, unsigned char *out, int *outlen, const unsigned char *in, int *inlen)
......@@ -392,8 +324,6 @@ static void init_char_encoders(void)
}
}
#endif /* HAVE_LIBXML2 */
const CLSID* DOMDocument_version(MSXML_VERSION v)
{
switch (v)
......@@ -413,7 +343,6 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID reserved)
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
#ifdef HAVE_LIBXML2
xmlInitParser();
/* Set the default indent character to a single tab,
......@@ -430,26 +359,17 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID reserved)
schemasInit();
init_libxslt();
#endif
DisableThreadLibraryCalls(hInstDLL);
break;
case DLL_PROCESS_DETACH:
if (reserved) break;
#ifdef HAVE_LIBXML2
#ifdef SONAME_LIBXSLT
if (libxslt_handle)
{
pxsltCleanupGlobals();
dlclose(libxslt_handle);
}
#endif
xsltCleanupGlobals();
/* Restore default Callbacks */
xmlCleanupInputCallbacks();
xmlRegisterDefaultInputCallbacks();
xmlCleanupParser();
schemasCleanup();
#endif
release_typelib();
break;
}
......
......@@ -23,16 +23,11 @@
#include "dispex.h"
#include "wine/unicode.h"
#include "wine/heap.h"
#include "wine/list.h"
#include "msxml_dispex.h"
#ifndef __WINE_CONFIG_H
# error You must include config.h to use this header
#endif
extern const CLSID * DOMDocument_version(MSXML_VERSION v) DECLSPEC_HIDDEN;
......@@ -97,7 +92,7 @@ static inline LPWSTR heap_strdupW(LPCWSTR str)
if(str) {
DWORD size;
size = (strlenW(str)+1)*sizeof(WCHAR);
size = (lstrlenW(str)+1)*sizeof(WCHAR);
ret = heap_alloc(size);
if(ret)
memcpy(ret, str, size);
......@@ -120,24 +115,9 @@ struct xslprocessor_params
unsigned int count;
};
#ifdef HAVE_LIBXML2
extern void schemasInit(void) DECLSPEC_HIDDEN;
extern void schemasCleanup(void) DECLSPEC_HIDDEN;
#ifndef HAVE_XMLFIRSTELEMENTCHILD
static inline xmlNodePtr wine_xmlFirstElementChild(xmlNodePtr parent)
{
xmlNodePtr child;
for (child = parent->children; child != NULL; child = child->next)
if (child->type == XML_ELEMENT_NODE)
break;
return child;
}
#define xmlFirstElementChild wine_xmlFirstElementChild
#endif
/* IXMLDOMNode Internal Structure */
typedef struct _xmlnode
{
......@@ -211,7 +191,7 @@ extern HRESULT XMLElement_create( xmlNodePtr node, LPVOID *ppObj, BOOL own ) DEC
extern void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap) DECLSPEC_HIDDEN;
extern void wineXmlCallbackError(char const* caller, xmlErrorPtr err) DECLSPEC_HIDDEN;
#define LIBXML2_LOG_CALLBACK __WINE_PRINTF_ATTR(2,3)
#define LIBXML2_LOG_CALLBACK WINAPIV __WINE_PRINTF_ATTR(2,3)
#define LIBXML2_CALLBACK_TRACE(caller, msg, ap) \
wineXmlCallbackLog(#caller, XML_ERR_NONE, msg, ap)
......@@ -281,11 +261,9 @@ extern BSTR EnsureCorrectEOL(BSTR) DECLSPEC_HIDDEN;
extern xmlChar* tagName_to_XPath(const BSTR tagName) DECLSPEC_HIDDEN;
#ifdef SONAME_LIBXSLT
# include <libxslt/documents.h>
#include <libxslt/documents.h>
extern xmlDocPtr xslt_doc_default_loader(const xmlChar *uri, xmlDictPtr dict, int options,
void *_ctxt, xsltLoadType type) DECLSPEC_HIDDEN;
#endif /* SONAME_LIBXSLT */
static inline BSTR bstr_from_xmlChar(const xmlChar *str)
{
......@@ -337,8 +315,6 @@ static inline xmlChar *heap_strdupxmlChar(const xmlChar *str)
return ret;
}
#endif
static inline HRESULT return_null_node(IXMLDOMNode **p)
{
if(!p)
......
......@@ -94,7 +94,7 @@ static HRESULT declare_prefix(namespacemanager *This, const WCHAR *prefix, const
ns = NULL;
for (i = 0; i < ctxt->count; i++)
if (!lstrcmpW(ctxt->ns[i].prefix, prefix))
if (!wcscmp(ctxt->ns[i].prefix, prefix))
{
ns = &ctxt->ns[i];
break;
......@@ -143,7 +143,7 @@ static HRESULT get_declared_prefix_uri(const struct list *ctxts, const WCHAR *ur
{
int i;
for (i = 0; i < ctxt->count; i++)
if (!lstrcmpW(ctxt->ns[i].uri, uri))
if (!wcscmp(ctxt->ns[i].uri, uri))
{
*prefix = ctxt->ns[i].prefix;
return S_OK;
......@@ -159,7 +159,7 @@ static HRESULT get_uri_from_prefix(const struct nscontext *ctxt, const WCHAR *pr
int i;
for (i = 0; i < ctxt->count; i++)
if (!lstrcmpW(ctxt->ns[i].prefix, prefix))
if (!wcscmp(ctxt->ns[i].prefix, prefix))
{
*uri = ctxt->ns[i].uri;
return S_OK;
......@@ -279,7 +279,7 @@ static HRESULT WINAPI namespacemanager_declarePrefix(IMXNamespaceManager *iface,
TRACE("(%p)->(%s %s)\n", This, debugstr_w(prefix), debugstr_w(namespaceURI));
if (prefix && (!lstrcmpW(prefix, xmlW) || !lstrcmpW(prefix, xmlnsW) || !namespaceURI))
if (prefix && (!wcscmp(prefix, xmlW) || !wcscmp(prefix, xmlnsW) || !namespaceURI))
return E_INVALIDARG;
return declare_prefix(This, prefix, namespaceURI);
......
......@@ -30,7 +30,6 @@
#include "msxml6.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "msxml_dispex.h"
......@@ -3077,10 +3076,10 @@ static HRESULT WINAPI SAXAttributes_getIndexFromName(ISAXAttributes *iface, cons
for (i = 0; i < This->length; i++)
{
if (uri_len != SysStringLen(This->attr[i].uri)) continue;
if (strncmpW(uri, This->attr[i].uri, uri_len)) continue;
if (wcsncmp(uri, This->attr[i].uri, uri_len)) continue;
if (len != SysStringLen(This->attr[i].local)) continue;
if (strncmpW(name, This->attr[i].local, len)) continue;
if (wcsncmp(name, This->attr[i].local, len)) continue;
*index = i;
return S_OK;
......@@ -3105,7 +3104,7 @@ static HRESULT WINAPI SAXAttributes_getIndexFromQName(ISAXAttributes *iface, con
for (i = 0; i < This->length; i++)
{
if (len != SysStringLen(This->attr[i].qname)) continue;
if (strncmpW(qname, This->attr[i].qname, len)) continue;
if (wcsncmp(qname, This->attr[i].qname, len)) continue;
*index = i;
return S_OK;
......
......@@ -18,31 +18,21 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#define COBJMACROS
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/parserInternals.h>
# include <libxml/xmlerror.h>
# include <libxml/HTMLtree.h>
# ifdef SONAME_LIBXSLT
# ifdef HAVE_LIBXSLT_PATTERN_H
# include <libxslt/pattern.h>
# endif
# ifdef HAVE_LIBXSLT_TRANSFORM_H
# include <libxslt/transform.h>
# endif
# include <libxslt/imports.h>
# include <libxslt/variables.h>
# include <libxslt/xsltutils.h>
# include <libxslt/xsltInternals.h>
# include <libxslt/documents.h>
# endif
#endif
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/xmlerror.h>
#include <libxml/HTMLtree.h>
#include <libxslt/pattern.h>
#include <libxslt/transform.h>
#include <libxslt/imports.h>
#include <libxslt/variables.h>
#include <libxslt/xsltutils.h>
#include <libxslt/xsltInternals.h>
#include <libxslt/documents.h>
#include "windef.h"
#include "winbase.h"
......@@ -55,28 +45,8 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef SONAME_LIBXSLT
extern void* libxslt_handle;
# define MAKE_FUNCPTR(f) extern typeof(f) * p##f
MAKE_FUNCPTR(xsltApplyStylesheet);
MAKE_FUNCPTR(xsltApplyStylesheetUser);
MAKE_FUNCPTR(xsltCleanupGlobals);
MAKE_FUNCPTR(xsltFreeStylesheet);
MAKE_FUNCPTR(xsltFreeTransformContext);
MAKE_FUNCPTR(xsltNewTransformContext);
MAKE_FUNCPTR(xsltNextImport);
MAKE_FUNCPTR(xsltParseStylesheetDoc);
MAKE_FUNCPTR(xsltQuoteUserParams);
MAKE_FUNCPTR(xsltSaveResultTo);
# undef MAKE_FUNCPTR
#else
WINE_DECLARE_DEBUG_CHANNEL(winediag);
#endif
static const IID IID_xmlnode = {0x4f2f4ba2,0xb822,0x11df,{0x8b,0x8a,0x68,0x50,0xdf,0xd7,0x20,0x85}};
xmlNodePtr xmlNodePtr_from_domnode( IXMLDOMNode *iface, xmlElementType type )
......@@ -988,8 +958,6 @@ HRESULT node_get_xml(xmlnode *This, BOOL ensure_eol, BSTR *ret)
return *ret ? S_OK : E_OUTOFMEMORY;
}
#ifdef SONAME_LIBXSLT
/* duplicates xmlBufferWriteQuotedString() logic */
static void xml_write_quotedstring(xmlOutputBufferPtr buf, const xmlChar *string)
{
......@@ -1090,7 +1058,7 @@ static void transform_write_text(xmlDocPtr result, xsltStylesheetPtr style, xmlO
res = NULL; \
while (st != NULL) { \
if (st->name != NULL) { res = st->name; break; } \
st = pxsltNextImport(st); \
st = xsltNextImport(st); \
}}
#undef XSLT_GET_IMPORT_INT
......@@ -1099,7 +1067,7 @@ static void transform_write_text(xmlDocPtr result, xsltStylesheetPtr style, xmlO
res = -1; \
while (st != NULL) { \
if (st->name != -1) { res = st->name; break; } \
st = pxsltNextImport(st); \
st = xsltNextImport(st); \
}}
static void transform_write_xmldecl(xmlDocPtr result, xsltStylesheetPtr style, BOOL omit_encoding, xmlOutputBufferPtr output)
......@@ -1266,13 +1234,8 @@ static HRESULT node_transform_write_to_bstr(xsltStylesheetPtr style, xmlDocPtr r
return E_OUTOFMEMORY;
hr = node_transform_write(style, result, TRUE, "UTF-16", output);
#ifdef LIBXML2_NEW_BUFFER
content = xmlBufContent(output->conv);
len = xmlBufUse(output->conv);
#else
content = xmlBufferContent(output->conv);
len = xmlBufferLength(output->conv);
#endif
/* UTF-16 encoder places UTF-16 bom, we don't need it for BSTR */
content += sizeof(WCHAR);
*str = SysAllocStringLen((WCHAR*)content, len/sizeof(WCHAR) - 1);
......@@ -1500,18 +1463,14 @@ failed:
return doc;
}
#endif /* SONAME_LIBXSLT */
HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet, BSTR *p,
ISequentialStream *stream, const struct xslprocessor_params *params)
{
#ifdef SONAME_LIBXSLT
xsltStylesheetPtr xsltSS;
xmlDocPtr sheet_doc;
HRESULT hr = S_OK;
xmlnode *sheet;
if (!libxslt_handle) return E_NOTIMPL;
if (!stylesheet || (!p && !stream)) return E_INVALIDARG;
if (p) *p = NULL;
......@@ -1520,7 +1479,7 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet,
if(!sheet) return E_FAIL;
sheet_doc = xmlCopyDoc(sheet->node->doc, 1);
xsltSS = pxsltParseStylesheetDoc(sheet_doc);
xsltSS = xsltParseStylesheetDoc(sheet_doc);
if (xsltSS)
{
const char **xslparams = NULL;
......@@ -1544,19 +1503,19 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet,
if (xslparams)
{
xsltTransformContextPtr ctxt = pxsltNewTransformContext(xsltSS, This->node->doc);
xsltTransformContextPtr ctxt = xsltNewTransformContext(xsltSS, This->node->doc);
/* push parameters to user context */
pxsltQuoteUserParams(ctxt, xslparams);
result = pxsltApplyStylesheetUser(xsltSS, This->node->doc, NULL, NULL, NULL, ctxt);
pxsltFreeTransformContext(ctxt);
xsltQuoteUserParams(ctxt, xslparams);
result = xsltApplyStylesheetUser(xsltSS, This->node->doc, NULL, NULL, NULL, ctxt);
xsltFreeTransformContext(ctxt);
for (i = 0; i < params->count*2; i++)
heap_free((char*)xslparams[i]);
heap_free(xslparams);
}
else
result = pxsltApplyStylesheet(xsltSS, This->node->doc, NULL);
result = xsltApplyStylesheet(xsltSS, This->node->doc, NULL);
if (result)
{
......@@ -1567,7 +1526,7 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet,
xmlFreeDoc(result);
}
pxsltFreeStylesheet(xsltSS);
xsltFreeStylesheet(xsltSS);
}
else
xmlFreeDoc(sheet_doc);
......@@ -1575,11 +1534,6 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet,
if (p && !*p) *p = SysAllocStringLen(NULL, 0);
return hr;
#else
ERR_(winediag)("libxslt headers were not found at compile time. Expect problems.\n");
return E_NOTIMPL;
#endif
}
HRESULT node_transform_node(const xmlnode *node, IXMLDOMNode *stylesheet, BSTR *p)
......@@ -2324,4 +2278,3 @@ IXMLDOMNode *create_node( xmlNodePtr node )
if(FAILED(hr)) return NULL;
return ret;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -48,8 +44,6 @@
* thus the child is inaccessible by an XPath query
*/
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct
......@@ -426,5 +420,3 @@ IXMLDOMNodeList* create_children_nodelist( xmlNodePtr node )
return &This->IXMLDOMNodeList_iface;
}
#endif
......@@ -18,15 +18,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#define COBJMACROS
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -40,8 +36,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct
......@@ -456,5 +450,3 @@ IXMLDOMNamedNodeMap *create_nodemap(xmlNodePtr node, const struct nodemap_funcs
return &This->IXMLDOMNamedNodeMap_iface;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -39,8 +35,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _dom_pi
......@@ -198,7 +192,7 @@ static HRESULT WINAPI dom_pi_put_nodeValue(
if(hr == S_OK)
{
static const WCHAR xmlW[] = {'x','m','l',0};
if(!strcmpW(target, xmlW))
if(!wcscmp(target, xmlW))
{
SysFreeString(target);
return E_FAIL;
......@@ -438,7 +432,7 @@ static HRESULT WINAPI dom_pi_get_attributes(
hr = node_get_nodeName(&This->node, &name);
if (hr != S_OK) return hr;
if (!strcmpW(name, xmlW))
if (!wcscmp(name, xmlW))
{
if (!This->node.node->properties)
{
......@@ -754,7 +748,7 @@ static HRESULT WINAPI dom_pi_put_data(
if(hr == S_OK)
{
static const WCHAR xmlW[] = {'x','m','l',0};
if(!strcmpW(target, xmlW))
if(!wcscmp(target, xmlW))
{
SysFreeString(target);
return E_FAIL;
......@@ -947,5 +941,3 @@ IUnknown* create_pi( xmlNodePtr pi )
return (IUnknown*)&This->IXMLDOMProcessingInstruction_iface;
}
#endif
......@@ -20,15 +20,11 @@
*/
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
# include <libxml/SAX2.h>
# include <libxml/parserInternals.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include <libxml/SAX2.h>
#include <libxml/parserInternals.h>
#include "windef.h"
#include "winbase.h"
......@@ -45,8 +41,6 @@
#include "msxml_private.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef enum
......@@ -136,7 +130,7 @@ static saxreader_feature get_saxreader_feature(const WCHAR *name)
{
n = (min+max)/2;
c = strcmpW(saxreader_feature_map[n].name, name);
c = wcscmp(saxreader_feature_map[n].name, name);
if (!c)
return saxreader_feature_map[n].feature;
......@@ -456,10 +450,10 @@ static BSTR build_qname(BSTR prefix, BSTR local)
WCHAR *ptr;
ptr = qname;
strcpyW(ptr, prefix);
lstrcpyW(ptr, prefix);
ptr += SysStringLen(prefix);
*ptr++ = ':';
strcpyW(ptr, local);
lstrcpyW(ptr, local);
return qname;
}
else
......@@ -536,7 +530,7 @@ static BSTR find_element_uri(saxlocator *locator, const xmlChar *uri)
LIST_FOR_EACH_ENTRY(element, &locator->elements, element_entry, entry)
{
for (i=0; i < element->ns_count; i++)
if (!strcmpW(uriW, element->ns[i].uri))
if (!wcscmp(uriW, element->ns[i].uri))
{
SysFreeString(uriW);
return element->ns[i].uri;
......@@ -1417,7 +1411,7 @@ static BSTR saxreader_get_unescaped_value(const xmlChar *buf, int len)
if (len != -1) str[str_len-1] = 0;
ptrW = str;
while ((dest = strstrW(ptrW, ampescW)))
while ((dest = wcsstr(ptrW, ampescW)))
{
WCHAR *src;
......@@ -1426,7 +1420,7 @@ static BSTR saxreader_get_unescaped_value(const xmlChar *buf, int len)
dest++;
/* move together with null terminator */
memmove(dest, src, (strlenW(src) + 1)*sizeof(WCHAR));
memmove(dest, src, (lstrlenW(src) + 1)*sizeof(WCHAR));
ptrW++;
}
......@@ -1922,7 +1916,7 @@ static void libxmlComment(void *ctx, const xmlChar *value)
format_error_message_from_id(This, hr);
}
static void libxmlFatalError(void *ctx, const char *msg, ...)
static void WINAPIV libxmlFatalError(void *ctx, const char *msg, ...)
{
saxlocator *This = ctx;
struct saxerrorhandler_iface *handler = saxreader_get_errorhandler(This->saxreader);
......@@ -2653,7 +2647,7 @@ static HRESULT internal_parse(
case VT_BSTR|VT_BYREF:
{
BSTR str = V_ISBYREF(&varInput) ? *V_BSTRREF(&varInput) : V_BSTR(&varInput);
hr = internal_parseBuffer(This, (const char*)str, strlenW(str)*sizeof(WCHAR), vbInterface);
hr = internal_parseBuffer(This, (const char*)str, lstrlenW(str)*sizeof(WCHAR), vbInterface);
break;
}
case VT_ARRAY|VT_UI1: {
......@@ -3491,14 +3485,3 @@ HRESULT SAXXMLReader_create(MSXML_VERSION version, LPVOID *ppObj)
return S_OK;
}
#else
HRESULT SAXXMLReader_create(MSXML_VERSION version, LPVOID *ppObj)
{
MESSAGE("This program tried to use a SAX XML Reader object, but\n"
"libxml2 support was not present at compile time.\n");
return E_NOTIMPL;
}
#endif
......@@ -21,22 +21,18 @@
#define COBJMACROS
#include "config.h"
#include <assert.h>
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/xmlerror.h>
# include <libxml/tree.h>
# include <libxml/xmlschemas.h>
# include <libxml/schemasInternals.h>
# include <libxml/hash.h>
# include <libxml/parser.h>
# include <libxml/parserInternals.h>
# include <libxml/xmlIO.h>
# include <libxml/xmlversion.h>
# include <libxml/xpath.h>
#endif
#include <libxml/xmlerror.h>
#include <libxml/tree.h>
#include <libxml/xmlschemas.h>
#include <libxml/schemasInternals.h>
#include <libxml/hash.h>
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/xmlIO.h>
#include <libxml/xmlversion.h>
#include <libxml/xpath.h>
#include "windef.h"
#include "winbase.h"
......@@ -48,16 +44,8 @@
#include "msxml_private.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#if LIBXML_VERSION >= 20908
#define XMLHASH_CONST const
#else
#define XMLHASH_CONST
#endif
/* We use a chained hashtable, which can hold any number of schemas
* TODO: grow/shrink hashtable depending on load factor
* TODO: implement read-only where appropriate
......@@ -255,22 +243,17 @@ static void LIBXML2_LOG_CALLBACK parser_warning(void* ctx, char const* msg, ...)
va_end(ap);
}
#ifdef HAVE_XMLSCHEMASSETPARSERSTRUCTUREDERRORS
static void parser_serror(void* ctx, xmlErrorPtr err)
{
LIBXML2_CALLBACK_SERROR(Schema_parse, err);
}
#endif
static inline xmlSchemaPtr Schema_parse(xmlSchemaParserCtxtPtr spctx)
{
TRACE("(%p)\n", spctx);
xmlSchemaSetParserErrors(spctx, parser_error, parser_warning, NULL);
#ifdef HAVE_XMLSCHEMASSETPARSERSTRUCTUREDERRORS
xmlSchemaSetParserStructuredErrors(spctx, parser_serror, NULL);
#endif
return xmlSchemaParse(spctx);
}
......@@ -290,12 +273,10 @@ static void LIBXML2_LOG_CALLBACK validate_warning(void* ctx, char const* msg, ..
va_end(ap);
}
#ifdef HAVE_XMLSCHEMASSETVALIDSTRUCTUREDERRORS
static void validate_serror(void* ctx, xmlErrorPtr err)
{
LIBXML2_CALLBACK_SERROR(Schema_validate_tree, err);
}
#endif
static HRESULT schema_cache_get_item(IUnknown *iface, LONG index, VARIANT *item)
{
......@@ -318,9 +299,7 @@ static inline HRESULT Schema_validate_tree(xmlSchemaPtr schema, xmlNodePtr tree)
* we probably need to validate the schema here. */
svctx = xmlSchemaNewValidCtxt(schema);
xmlSchemaSetValidErrors(svctx, validate_error, validate_warning, NULL);
#ifdef HAVE_XMLSCHEMASSETVALIDSTRUCTUREDERRORS
xmlSchemaSetValidStructuredErrors(svctx, validate_serror, NULL);
#endif
if (tree->type == XML_DOCUMENT_NODE)
err = xmlSchemaValidateDoc(svctx, (xmlDocPtr)tree);
......@@ -986,7 +965,7 @@ static cache_entry* cache_entry_from_url(VARIANT url, xmlChar const* nsURI, MSXM
return entry;
}
static void cache_free(void* data, XMLHASH_CONST xmlChar* name /* ignored */)
static void cache_free(void* data, const xmlChar* name /* ignored */)
{
cache_entry_release((cache_entry*)data);
}
......@@ -1403,7 +1382,7 @@ static HRESULT WINAPI schema_cache_get_namespaceURI(IXMLDOMSchemaCollection2* if
return S_OK;
}
static void cache_copy(void* data, void* dest, XMLHASH_CONST xmlChar* name)
static void cache_copy(void* data, void* dest, const xmlChar* name)
{
schema_cache* This = (schema_cache*) dest;
cache_entry* entry = (cache_entry*) data;
......@@ -1641,14 +1620,3 @@ HRESULT SchemaCache_create(MSXML_VERSION version, void** obj)
*obj = &This->IXMLDOMSchemaCollection2_iface;
return S_OK;
}
#else
HRESULT SchemaCache_create(MSXML_VERSION version, void** obj)
{
MESSAGE("This program tried to use a SchemaCache object, but\n"
"libxml2 support was not present at compile time.\n");
return E_NOTIMPL;
}
#endif
......@@ -22,15 +22,11 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
# include <libxml/xpath.h>
# include <libxml/xpathInternals.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include "windef.h"
#include "winbase.h"
......@@ -52,8 +48,6 @@
*
*/
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
int registerNamespaces(xmlXPathContextPtr ctxt);
......@@ -838,5 +832,3 @@ cleanup:
xmlXPathFreeContext(ctxt);
return hr;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -563,7 +559,6 @@ static HRESULT WINAPI xslprocessor_transform(
IXSLProcessor *iface,
VARIANT_BOOL *ret)
{
#ifdef HAVE_LIBXML2
xslprocessor *This = impl_from_IXSLProcessor( iface );
ISequentialStream *stream = NULL;
HRESULT hr;
......@@ -650,10 +645,6 @@ static HRESULT WINAPI xslprocessor_transform(
*ret = hr == S_OK ? VARIANT_TRUE : VARIANT_FALSE;
return hr;
#else
FIXME("libxml2 is required but wasn't present at compile time\n");
return E_NOTIMPL;
#endif
}
static HRESULT WINAPI xslprocessor_reset( IXSLProcessor *iface )
......@@ -713,7 +704,7 @@ static HRESULT WINAPI xslprocessor_addParameter(
/* search for existing parameter first */
LIST_FOR_EACH_ENTRY(cur, &This->params.list, struct xslprocessor_par, entry)
{
if (!strcmpW(cur->name, p))
if (!wcscmp(cur->name, p))
{
par = cur;
break;
......
......@@ -21,14 +21,10 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/parserInternals.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -40,8 +36,6 @@
#include "wine/debug.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _domtext
......@@ -962,5 +956,3 @@ IUnknown* create_text( xmlNodePtr text )
return (IUnknown*)&This->IXMLDOMText_iface;
}
#endif
......@@ -18,13 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <assert.h>
#ifdef HAVE_LIBXML2
# include <libxml/tree.h>
#endif
#include <libxml/tree.h>
#include "wine/debug.h"
......@@ -32,8 +27,6 @@
* We just convert the doc tree, no need for a parser.
*/
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static const xmlChar DT_prefix[] = "dt";
......@@ -824,5 +817,3 @@ xmlDocPtr XDR_to_XSD_doc(xmlDocPtr xdr_doc, xmlChar const* nsURI)
return xsd_doc;
}
#endif /* HAVE_LIBXML2 */
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -42,8 +38,6 @@
#include "msxml_private.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
/* FIXME: IXMLDocument needs to implement
......@@ -597,12 +591,8 @@ static HRESULT WINAPI xmldoc_IPersistStreamInit_IsDirty(
static xmlDocPtr parse_xml(char *ptr, int len)
{
#ifdef HAVE_XMLREADMEMORY
return xmlReadMemory(ptr, len, NULL, NULL,
XML_PARSE_NOERROR | XML_PARSE_NOWARNING | XML_PARSE_NOBLANKS);
#else
return xmlParseMemory(ptr, len);
#endif
}
static HRESULT WINAPI xmldoc_IPersistStreamInit_Load(
......@@ -718,14 +708,3 @@ HRESULT XMLDocument_create(LPVOID *ppObj)
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
#else
HRESULT XMLDocument_create(LPVOID *ppObj)
{
MESSAGE("This program tried to use an XMLDocument object, but\n"
"libxml2 support was not present at compile time.\n");
return E_NOTIMPL;
}
#endif
......@@ -20,13 +20,9 @@
#define COBJMACROS
#include "config.h"
#include <stdarg.h>
#ifdef HAVE_LIBXML2
# include <libxml/parser.h>
# include <libxml/xmlerror.h>
#endif
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
......@@ -39,8 +35,6 @@
#include "msxml_private.h"
#ifdef HAVE_LIBXML2
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static HRESULT XMLElementCollection_create( xmlNodePtr node, LPVOID *ppObj );
......@@ -847,5 +841,3 @@ static HRESULT XMLElementCollection_create(xmlNodePtr node, LPVOID *ppObj)
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
#endif
......@@ -31,7 +31,6 @@
#include "docobj.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "msxml_dispex.h"
......@@ -426,12 +425,12 @@ static inline HRESULT handle_xml_load(BindStatusCallback *This)
}
/* TODO: fix parsing processing instruction value */
if((p = strstrW(V_BSTR(&var), hrefW))) {
if((p = wcsstr(V_BSTR(&var), hrefW))) {
p += ARRAY_SIZE(hrefW) - 1;
if(*p!='\'' && *p!='\"') p = NULL;
else {
href = p+1;
p = strchrW(href, *p);
p = wcschr(href, *p);
}
}
if(p) {
......
......@@ -21,14 +21,6 @@
#ifndef __XSLPATTERN__
#define __XSLPATTERN__
#ifndef __WINE_CONFIG_H
#error You must include config.h to use this header
#endif
#ifndef HAVE_LIBXML2
#error You must have libxml2 to use this header
#endif
#include <libxml/tree.h>
#include <libxml/xmlstring.h>
#include <libxml/xpath.h>
......
......@@ -19,11 +19,6 @@
*/
%{
#include "config.h"
#include "wine/port.h"
#ifdef HAVE_LIBXML2
#include "xslpattern.h"
#include "xslpattern.tab.h"
#include "wine/debug.h"
......@@ -181,5 +176,3 @@ xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str)
}
}
#endif /* HAVE_LIBXML2 */
......@@ -19,10 +19,6 @@
*/
%{
#include "config.h"
#include "wine/port.h"
#ifdef HAVE_LIBXML2
#include "xslpattern.h"
#include <libxml/xpathInternals.h>
#include "wine/debug.h"
......@@ -750,5 +746,3 @@ static void xslpattern_error(parser_param* param, void const* scanner, char cons
;
%%
#endif /* HAVE_LIBXML2 */
......@@ -243,27 +243,9 @@
/* Define to 1 if you have the `unwind' library (-lunwind). */
#undef HAVE_LIBUNWIND
/* Define if you have the libxml2 library */
#undef HAVE_LIBXML2
/* Define to 1 if you have the <libxml/parser.h> header file. */
#undef HAVE_LIBXML_PARSER_H
/* Define to 1 if you have the <libxml/SAX2.h> header file. */
#undef HAVE_LIBXML_SAX2_H
/* Define to 1 if you have the <libxml/xmlsave.h> header file. */
#undef HAVE_LIBXML_XMLSAVE_H
/* Define if you have the X Shape extension */
#undef HAVE_LIBXSHAPE
/* Define to 1 if you have the <libxslt/pattern.h> header file. */
#undef HAVE_LIBXSLT_PATTERN_H
/* Define to 1 if you have the <libxslt/transform.h> header file. */
#undef HAVE_LIBXSLT_TRANSFORM_H
/* Define if you have the X Shm extension */
#undef HAVE_LIBXXSHM
......@@ -890,24 +872,6 @@
/* Define if you have the XKB extension */
#undef HAVE_XKB
/* Define if libxml2 has the xmlDocProperties enum */
#undef HAVE_XMLDOC_PROPERTIES
/* Define if libxml2 has the xmlFirstElementChild function */
#undef HAVE_XMLFIRSTELEMENTCHILD
/* Define if libxml2 has the xmlNewDocPI function */
#undef HAVE_XMLNEWDOCPI
/* Define if libxml2 has the xmlReadMemory function */
#undef HAVE_XMLREADMEMORY
/* Define if libxml2 has the xmlSchemaSetParserStructuredErrors function */
#undef HAVE_XMLSCHEMASSETPARSERSTRUCTUREDERRORS
/* Define if libxml2 has the xmlSchemaSetValidStructuredErrors function */
#undef HAVE_XMLSCHEMASSETVALIDSTRUCTUREDERRORS
/* Define if Xrender has the XRenderCreateLinearGradient function */
#undef HAVE_XRENDERCREATELINEARGRADIENT
......@@ -1058,9 +1022,6 @@
/* Define to the soname of the libXrender library. */
#undef SONAME_LIBXRENDER
/* Define to the soname of the libxslt library. */
#undef SONAME_LIBXSLT
/* Define to the soname of the libXxf86vm library. */
#undef SONAME_LIBXXF86VM
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment