https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bab6b90fd95fe293a45485...
commit bab6b90fd95fe293a45485189cc0ae07a2dc8a05 Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Tue Mar 20 12:28:36 2018 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Tue Mar 20 12:28:36 2018 +0100
[MSXML3] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/msxml3/attribute.c | 23 ++- dll/win32/msxml3/bsc.c | 54 +++++- dll/win32/msxml3/cdata.c | 22 ++- dll/win32/msxml3/comment.c | 22 ++- dll/win32/msxml3/dispex.c | 33 +++- dll/win32/msxml3/docfrag.c | 22 ++- dll/win32/msxml3/doctype.c | 23 ++- dll/win32/msxml3/domdoc.c | 78 +++++---- dll/win32/msxml3/domimpl.c | 22 ++- dll/win32/msxml3/element.c | 23 ++- dll/win32/msxml3/entityref.c | 22 ++- dll/win32/msxml3/factory.c | 26 +-- dll/win32/msxml3/httprequest.c | 44 +++-- dll/win32/msxml3/main.c | 42 ++++- dll/win32/msxml3/msxml_private.h | 42 ++--- dll/win32/msxml3/mxnamespace.c | 23 ++- dll/win32/msxml3/mxwriter.c | 117 +++++++------ dll/win32/msxml3/node.c | 210 ++++++++++++++++++++++- dll/win32/msxml3/nodelist.c | 23 ++- dll/win32/msxml3/nodemap.c | 24 ++- dll/win32/msxml3/parseerror.c | 24 ++- dll/win32/msxml3/pi.c | 22 ++- dll/win32/msxml3/precomp.h | 5 +- dll/win32/msxml3/saxreader.c | 66 ++++++-- dll/win32/msxml3/schema.c | 34 +++- dll/win32/msxml3/selection.c | 21 ++- dll/win32/msxml3/stylesheet.c | 26 ++- dll/win32/msxml3/text.c | 53 +++++- dll/win32/msxml3/uuid.c | 16 +- dll/win32/msxml3/version.rc | 2 +- dll/win32/msxml3/xdr.c | 7 +- dll/win32/msxml3/xmldoc.c | 30 +++- dll/win32/msxml3/xmlelem.c | 23 ++- dll/win32/msxml3/xmlparser.c | 24 ++- dll/win32/msxml3/xmlview.c | 32 +++- dll/win32/msxml3/xslpattern.h | 4 +- dll/win32/msxml3/xslpattern.tab.c | 191 ++++++++++----------- dll/win32/msxml3/xslpattern.tab.h | 8 +- dll/win32/msxml3/xslpattern.yy.c | 85 +++++----- dll/win32/msxml3/xslpattern.yy.h | 346 ++++++++++++++++++++++++++++++++++++++ media/doc/README.WINE | 2 +- 41 files changed, 1541 insertions(+), 375 deletions(-)
diff --git a/dll/win32/msxml3/attribute.c b/dll/win32/msxml3/attribute.c index 707e59614f..637615b341 100644 --- a/dll/win32/msxml3/attribute.c +++ b/dll/win32/msxml3/attribute.c @@ -18,10 +18,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#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 "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + static const xmlChar xmlns[] = "xmlns";
typedef struct _domattr diff --git a/dll/win32/msxml3/bsc.c b/dll/win32/msxml3/bsc.c index 9e148cb405..df4cf37346 100644 --- a/dll/win32/msxml3/bsc.c +++ b/dll/win32/msxml3/bsc.c @@ -16,7 +16,32 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS +#define NONAMELESSUNION + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" +#include "wininet.h" +#include "urlmon.h" +#include "winreg.h" +#include "shlwapi.h" + +#include "wine/debug.h" + +#include "msxml_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
struct bsc_t { IBindStatusCallback IBindStatusCallback_iface; @@ -217,24 +242,24 @@ static const struct IBindStatusCallbackVtbl bsc_vtbl = bsc_OnObjectAvailable };
-HRESULT create_moniker_from_url(LPCWSTR url, IMoniker **mon) +HRESULT create_uri(const WCHAR *url, IUri **uri) { WCHAR fileUrl[INTERNET_MAX_URL_LENGTH];
TRACE("%s\n", debugstr_w(url));
- if(!PathIsURLW(url)) + if (!PathIsURLW(url)) { WCHAR fullpath[MAX_PATH]; - DWORD needed = sizeof(fileUrl)/sizeof(WCHAR); + DWORD needed = ARRAY_SIZE(fileUrl);
- if(!PathSearchAndQualifyW(url, fullpath, sizeof(fullpath)/sizeof(WCHAR))) + if (!PathSearchAndQualifyW(url, fullpath, ARRAY_SIZE(fullpath))) { WARN("can't find path\n"); return E_FAIL; }
- if(FAILED(UrlCreateFromPathW(fullpath, fileUrl, &needed, 0))) + if (FAILED(UrlCreateFromPathW(fullpath, fileUrl, &needed, 0))) { ERR("can't create url from path\n"); return E_FAIL; @@ -242,7 +267,22 @@ HRESULT create_moniker_from_url(LPCWSTR url, IMoniker **mon) url = fileUrl; }
- return CreateURLMonikerEx(NULL, url, mon, 0); + return CreateUri(url, Uri_CREATE_ALLOW_RELATIVE | Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, uri); +} + +HRESULT create_moniker_from_url(LPCWSTR url, IMoniker **mon) +{ + HRESULT hr; + IUri *uri; + + TRACE("%s\n", debugstr_w(url)); + + if (FAILED(hr = create_uri(url, &uri))) + return hr; + + hr = CreateURLMonikerEx2(NULL, uri, mon, 0); + IUri_Release(uri); + return hr; }
HRESULT bind_url(IMoniker *mon, HRESULT (*onDataAvailable)(void*,char*,DWORD), diff --git a/dll/win32/msxml3/cdata.c b/dll/win32/msxml3/cdata.c index 91e90478de..c255b1b18b 100644 --- a/dll/win32/msxml3/cdata.c +++ b/dll/win32/msxml3/cdata.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct { xmlnode node; diff --git a/dll/win32/msxml3/comment.c b/dll/win32/msxml3/comment.c index 6df3082ecd..0317c4fc2d 100644 --- a/dll/win32/msxml3/comment.c +++ b/dll/win32/msxml3/comment.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _domcomment { xmlnode node; diff --git a/dll/win32/msxml3/dispex.c b/dll/win32/msxml3/dispex.c index e425084fc6..bd29a212c8 100644 --- a/dll/win32/msxml3/dispex.c +++ b/dll/win32/msxml3/dispex.c @@ -16,9 +16,34 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS
-#include <msxml6did.h> +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" +#include "msxml6did.h" +#include "wininet.h" +#include "urlmon.h" +#include "winreg.h" +#include "shlwapi.h" + +#include "wine/debug.h" +#include "wine/unicode.h" + +#include "msxml_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static CRITICAL_SECTION cs_dispex_static_data; static CRITICAL_SECTION_DEBUG cs_dispex_static_data_dbg = @@ -183,11 +208,11 @@ void release_typelib(void) heap_free(iter); }
- for(i=0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) + for(i=0; i < ARRAY_SIZE(typeinfos); i++) if(typeinfos[i]) ITypeInfo_Release(typeinfos[i]);
- for(i=0; i < sizeof(typelib)/sizeof(*typelib); i++) + for(i=0; i < ARRAY_SIZE(typelib); i++) if(typelib[i]) ITypeLib_Release(typelib[i]);
diff --git a/dll/win32/msxml3/docfrag.c b/dll/win32/msxml3/docfrag.c index 11534c7048..b2dd3e5dec 100644 --- a/dll/win32/msxml3/docfrag.c +++ b/dll/win32/msxml3/docfrag.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _domfrag { xmlnode node; diff --git a/dll/win32/msxml3/doctype.c b/dll/win32/msxml3/doctype.c index 2a1b9639e6..79d74d9fcd 100644 --- a/dll/win32/msxml3/doctype.c +++ b/dll/win32/msxml3/doctype.c @@ -18,10 +18,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _domdoctype { xmlnode node; diff --git a/dll/win32/msxml3/domdoc.c b/dll/win32/msxml3/domdoc.c index bb08f25a13..ddd756582b 100644 --- a/dll/win32/msxml3/domdoc.c +++ b/dll/win32/msxml3/domdoc.c @@ -19,22 +19,42 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS
-#include <assert.h> +#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/xmlsave.h> # include <libxml/SAX2.h> # include <libxml/parserInternals.h> #endif
-#include <olectl.h> -#include <objsafe.h> +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "olectl.h" +#include "msxml6.h" +#include "wininet.h" +#include "winreg.h" +#include "shlwapi.h" +#include "ocidl.h" +#include "objsafe.h" + +#include "wine/debug.h" + +#include "msxml_private.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + /* not defined in older versions */ #define XML_SAVE_FORMAT 1 #define XML_SAVE_NO_DECL 2 @@ -66,7 +86,7 @@ typedef struct { xmlChar const* selectNsStr; LONG selectNsStr_len; BOOL XPath; - WCHAR *url; + IUri *uri; } domdoc_properties;
typedef struct ConnectionPoint ConnectionPoint; @@ -278,8 +298,8 @@ static domdoc_properties *create_properties(MSXML_VERSION version) properties->version = version; properties->XPath = (version == MSXML4 || version == MSXML6);
- /* document url */ - properties->url = NULL; + /* document uri */ + properties->uri = NULL;
return properties; } @@ -315,16 +335,9 @@ static domdoc_properties* copy_properties(domdoc_properties const* properties) list_add_tail(&pcopy->selectNsList, &new_ns->entry); }
- if (properties->url) - { - int len = strlenW(properties->url); - - pcopy->url = CoTaskMemAlloc((len+1)*sizeof(WCHAR)); - memcpy(pcopy->url, properties->url, len*sizeof(WCHAR)); - pcopy->url[len] = 0; - } - else - pcopy->url = NULL; + pcopy->uri = properties->uri; + if (pcopy->uri) + IUri_AddRef(pcopy->uri); }
return pcopy; @@ -338,7 +351,8 @@ static void free_properties(domdoc_properties* properties) IXMLDOMSchemaCollection2_Release(properties->schemaCache); clear_selectNsList(&properties->selectNsList); heap_free((xmlChar*)properties->selectNsStr); - CoTaskMemFree(properties->url); + if (properties->uri) + IUri_Release(properties->uri); heap_free(properties); } } @@ -2273,16 +2287,20 @@ static HRESULT WINAPI domdoc_load( if ( filename ) { IMoniker *mon; + IUri *uri;
- CoTaskMemFree(This->properties->url); - This->properties->url = NULL; + if (This->properties->uri) + { + IUri_Release(This->properties->uri); + This->properties->uri = NULL; + }
- hr = create_moniker_from_url( filename, &mon); + hr = create_uri(filename, &uri); + if (SUCCEEDED(hr)) + hr = CreateURLMonikerEx2(NULL, uri, &mon, 0); if ( SUCCEEDED(hr) ) { hr = domdoc_load_moniker( This, mon ); - if (hr == S_OK) - IMoniker_GetDisplayName(mon, NULL, NULL, &This->properties->url); IMoniker_Release(mon); }
@@ -2290,6 +2308,8 @@ static HRESULT WINAPI domdoc_load( This->error = E_FAIL; else { + get_doc(This)->name = (char *)xmlchar_from_wcharn(filename, -1, TRUE); + This->properties->uri = uri; hr = This->error = S_OK; *isSuccessful = VARIANT_TRUE; } @@ -2354,16 +2374,10 @@ static HRESULT WINAPI domdoc_get_url( if (!url) return E_INVALIDARG;
- if (This->properties->url) - { - *url = SysAllocString(This->properties->url); - if (!*url) - return E_OUTOFMEMORY; - - return S_OK; - } - else + if (!This->properties->uri) return return_null_bstr(url); + + return IUri_GetPropertyBSTR(This->properties->uri, Uri_PROPERTY_DISPLAY_URI, url, 0); }
diff --git a/dll/win32/msxml3/domimpl.c b/dll/win32/msxml3/domimpl.c index a18070a759..74223d5d54 100644 --- a/dll/win32/msxml3/domimpl.c +++ b/dll/win32/msxml3/domimpl.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _domimpl { DispatchEx dispex; diff --git a/dll/win32/msxml3/element.c b/dll/win32/msxml3/element.c index 5addf33835..6e00aa0116 100644 --- a/dll/win32/msxml3/element.c +++ b/dll/win32/msxml3/element.c @@ -18,10 +18,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + static const xmlChar DT_prefix[] = "dt"; static const xmlChar DT_nsURI[] = "urn:schemas-microsoft-com:datatypes";
diff --git a/dll/win32/msxml3/entityref.c b/dll/win32/msxml3/entityref.c index 4946d70e80..5d5d424f25 100644 --- a/dll/win32/msxml3/entityref.c +++ b/dll/win32/msxml3/entityref.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _entityref { xmlnode node; diff --git a/dll/win32/msxml3/factory.c b/dll/win32/msxml3/factory.c index 3a01490ebe..445cfbf730 100644 --- a/dll/win32/msxml3/factory.c +++ b/dll/win32/msxml3/factory.c @@ -19,29 +19,29 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include <config.h> +#define COBJMACROS + +#include "config.h"
+#include <stdarg.h> #ifdef HAVE_LIBXML2 # include <libxml/parser.h> +# include <libxml/xmlerror.h> #endif
-#define WIN32_NO_STATUS -#define _INC_WINDOWS - -#define COBJMACROS - -#include <windef.h> -#include <winbase.h> -#include <ole2.h> -#include <msxml2.h> - +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml.h" +#include "msxml2.h" #include "xmlparser.h"
/* undef the #define in msxml2 so that we can access the v.2 version independent CLSID as well as the v.3 one. */ #undef CLSID_DOMDocument
-#include <wine/debug.h> +#include "wine/debug.h"
#include "msxml_private.h"
@@ -100,7 +100,7 @@ static MSXML_VERSION get_msxml_version(const GUID *clsid) { unsigned int i;
- for (i = 0; i < sizeof(clsid_versions_table)/sizeof(struct clsid_version_t); i++) + for (i = 0; i < ARRAY_SIZE(clsid_versions_table); i++) if (IsEqualGUID(clsid, clsid_versions_table[i].clsid)) return clsid_versions_table[i].version;
diff --git a/dll/win32/msxml3/httprequest.c b/dll/win32/msxml3/httprequest.c index 56bc51a932..40a976438d 100644 --- a/dll/win32/msxml3/httprequest.c +++ b/dll/win32/msxml3/httprequest.c @@ -19,14 +19,38 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS +#define NONAMELESSUNION
-#include <wingdi.h> -#include <mshtml.h> -#include <objsafe.h> -#include <docobj.h> +#include "config.h"
+#include <stdarg.h> #ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +# include <libxml/encoding.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "wininet.h" +#include "winreg.h" +#include "winuser.h" +#include "ole2.h" +#include "mshtml.h" +#include "msxml6.h" +#include "objsafe.h" +#include "docobj.h" +#include "shlwapi.h" + +#include "msxml_private.h" + +#include "wine/debug.h" + +#ifdef HAVE_LIBXML2 + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static const WCHAR colspaceW[] = {':',' ',0}; static const WCHAR crlfW[] = {'\r','\n',0}; @@ -492,7 +516,7 @@ static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate *ifac if (This->request->use_utf8_content) { lstrcpyW(ptr, content_type_utf8W); - ptr += sizeof(content_type_utf8W)/sizeof(WCHAR)-1; + ptr += ARRAY_SIZE(content_type_utf8W) - 1; }
if (base_uri) @@ -511,13 +535,13 @@ static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate *ifac ptr += SysStringLen(entry->header);
lstrcpyW(ptr, colspaceW); - ptr += sizeof(colspaceW)/sizeof(WCHAR)-1; + ptr += ARRAY_SIZE(colspaceW) - 1;
lstrcpyW(ptr, entry->value); ptr += SysStringLen(entry->value);
lstrcpyW(ptr, crlfW); - ptr += sizeof(crlfW)/sizeof(WCHAR)-1; + ptr += ARRAY_SIZE(crlfW) - 1; }
*add_headers = buff; @@ -1006,8 +1030,8 @@ static HRESULT httprequest_setRequestHeader(httprequest *This, BSTR header, BSTR entry->value = SysAllocString(value);
/* header length including null terminator */ - This->reqheader_size += SysStringLen(entry->header) + sizeof(colspaceW)/sizeof(WCHAR) + - SysStringLen(entry->value) + sizeof(crlfW)/sizeof(WCHAR) - 1; + This->reqheader_size += SysStringLen(entry->header) + ARRAY_SIZE(colspaceW) + + SysStringLen(entry->value) + ARRAY_SIZE(crlfW) - 1;
list_add_head(&This->reqheaders, &entry->entry);
diff --git a/dll/win32/msxml3/main.c b/dll/win32/msxml3/main.c index 3184ff1f6e..debd84e090 100644 --- a/dll/win32/msxml3/main.c +++ b/dll/win32/msxml3/main.c @@ -19,11 +19,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#include "config.h" +#include "wine/port.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> @@ -35,22 +39,37 @@ # 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 <rpcproxy.h> +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "rpcproxy.h" +#include "msxml.h" +#include "msxml6.h"
-#include <wine/library.h> +#include "wine/unicode.h" +#include "wine/debug.h" +#include "wine/library.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) { enum __wine_debug_class dbcl; char buff[200]; - const int max_size = sizeof(buff) / sizeof(buff[0]); + const int max_size = ARRAY_SIZE(buff); int len;
switch (lvl) @@ -155,11 +174,14 @@ 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
@@ -181,15 +203,25 @@ static void init_libxslt(void) 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( + (const xmlChar *)"node-set", + (const xmlChar *)"urn:schemas-microsoft-com:xslt", + pxsltFunctionNodeSet); + return;
sym_not_found: diff --git a/dll/win32/msxml3/msxml_private.h b/dll/win32/msxml3/msxml_private.h index 447df8d94e..d7039275ce 100644 --- a/dll/win32/msxml3/msxml_private.h +++ b/dll/win32/msxml3/msxml_private.h @@ -21,15 +21,18 @@ #ifndef __MSXML_PRIVATE__ #define __MSXML_PRIVATE__
-#include <dispex.h> +#include "dispex.h"
-#include <wine/unicode.h> -#include <wine/list.h> +#include "wine/unicode.h" +#include "wine/heap.h" +#include "wine/list.h"
#ifndef __WINE_CONFIG_H # error You must include config.h to use this header #endif
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + typedef enum { MSXML_DEFAULT = 0, MSXML2 = 20, @@ -164,31 +167,11 @@ const IID *get_riid_from_tid(enum tid_t tid) DECLSPEC_HIDDEN;
/* memory allocation functions */
-static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size) -{ - return HeapAlloc(GetProcessHeap(), 0, size); -} - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t size) -{ - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); -} - -static inline void* __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t size) -{ - return HeapReAlloc(GetProcessHeap(), 0, mem, size); -} - static inline void* __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t size) { return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, size); }
-static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - static inline LPWSTR heap_strdupW(LPCWSTR str) { LPWSTR ret = NULL; @@ -379,6 +362,12 @@ extern BSTR EnsureCorrectEOL(BSTR) DECLSPEC_HIDDEN;
extern xmlChar* tagName_to_XPath(const BSTR tagName) DECLSPEC_HIDDEN;
+#ifdef SONAME_LIBXSLT +# 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) { BSTR ret = NULL; @@ -395,12 +384,12 @@ static inline BSTR bstr_from_xmlChar(const xmlChar *str) return ret; }
-static inline xmlChar *xmlchar_from_wcharn(const WCHAR *str, int nchars) +static inline xmlChar *xmlchar_from_wcharn(const WCHAR *str, int nchars, BOOL use_xml_alloc) { xmlChar *xmlstr; DWORD len = WideCharToMultiByte( CP_UTF8, 0, str, nchars, NULL, 0, NULL, NULL );
- xmlstr = heap_alloc( len+1 ); + xmlstr = use_xml_alloc ? xmlMalloc( len + 1 ) : heap_alloc( len + 1 ); if ( xmlstr ) { WideCharToMultiByte( CP_UTF8, 0, str, nchars, (LPSTR) xmlstr, len+1, NULL, NULL ); @@ -411,7 +400,7 @@ static inline xmlChar *xmlchar_from_wcharn(const WCHAR *str, int nchars)
static inline xmlChar *xmlchar_from_wchar( const WCHAR *str ) { - return xmlchar_from_wcharn(str, -1); + return xmlchar_from_wcharn(str, -1, FALSE); }
static inline xmlChar *heap_strdupxmlChar(const xmlChar *str) @@ -544,6 +533,7 @@ static inline const CLSID* SchemaCache_version(MSXML_VERSION v) typedef struct bsc_t bsc_t;
HRESULT create_moniker_from_url(LPCWSTR, IMoniker**) DECLSPEC_HIDDEN; +HRESULT create_uri(const WCHAR *, IUri **) DECLSPEC_HIDDEN; HRESULT bind_url(IMoniker*, HRESULT (*onDataAvailable)(void*,char*,DWORD), void*, bsc_t**) DECLSPEC_HIDDEN; HRESULT detach_bsc(bsc_t*) DECLSPEC_HIDDEN;
diff --git a/dll/win32/msxml3/mxnamespace.c b/dll/win32/msxml3/mxnamespace.c index e41d1a45e6..dc6ff9c85a 100644 --- a/dll/win32/msxml3/mxnamespace.c +++ b/dll/win32/msxml3/mxnamespace.c @@ -18,7 +18,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +# include <libxml/encoding.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
struct ns { diff --git a/dll/win32/msxml3/mxwriter.c b/dll/win32/msxml3/mxwriter.c index 9d68e8cd62..10be2508b2 100644 --- a/dll/win32/msxml3/mxwriter.c +++ b/dll/win32/msxml3/mxwriter.c @@ -19,7 +19,26 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "ole2.h" + +#include "msxml6.h" + +#include "wine/debug.h" +#include "wine/list.h" + +#include "msxml_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
static const WCHAR emptyW[] = {0}; static const WCHAR spaceW[] = {' '}; @@ -206,7 +225,7 @@ static xml_encoding parse_encoding_name(const WCHAR *encoding) int min, max, n, c;
min = 0; - max = sizeof(xml_encoding_map)/sizeof(struct xml_encoding_data) - 1; + max = ARRAY_SIZE(xml_encoding_map) - 1;
while (min <= max) { @@ -496,21 +515,21 @@ static WCHAR *get_escaped_string(const WCHAR *str, escape_mode mode, int *len) { case '<': memcpy(ptr, ltW, sizeof(ltW)); - ptr += sizeof(ltW)/sizeof(WCHAR); + ptr += ARRAY_SIZE(ltW); break; case '&': memcpy(ptr, ampW, sizeof(ampW)); - ptr += sizeof(ampW)/sizeof(WCHAR); + ptr += ARRAY_SIZE(ampW); break; case '>': memcpy(ptr, gtW, sizeof(gtW)); - ptr += sizeof(gtW)/sizeof(WCHAR); + ptr += ARRAY_SIZE(gtW); break; case '"': if (mode == EscapeValue) { memcpy(ptr, equotW, sizeof(equotW)); - ptr += sizeof(equotW)/sizeof(WCHAR); + ptr += ARRAY_SIZE(equotW); break; } /* fallthrough for text mode */ @@ -538,26 +557,26 @@ static void write_prolog_buffer(mxwriter *writer) static const WCHAR noW[] = {'n','o','"','?','>'};
/* version */ - write_output_buffer(writer, versionW, sizeof(versionW)/sizeof(WCHAR)); + write_output_buffer(writer, versionW, ARRAY_SIZE(versionW)); write_output_buffer_quoted(writer, writer->version, -1);
/* encoding */ - write_output_buffer(writer, encodingW, sizeof(encodingW)/sizeof(WCHAR)); + write_output_buffer(writer, encodingW, ARRAY_SIZE(encodingW));
if (writer->dest) write_output_buffer(writer, writer->encoding, -1); else - write_output_buffer(writer, utf16W, sizeof(utf16W)/sizeof(WCHAR) - 1); + write_output_buffer(writer, utf16W, ARRAY_SIZE(utf16W) - 1); write_output_buffer(writer, quotW, 1);
/* standalone */ - write_output_buffer(writer, standaloneW, sizeof(standaloneW)/sizeof(WCHAR)); + write_output_buffer(writer, standaloneW, ARRAY_SIZE(standaloneW)); if (writer->props[MXWriter_Standalone] == VARIANT_TRUE) - write_output_buffer(writer, yesW, sizeof(yesW)/sizeof(WCHAR)); + write_output_buffer(writer, yesW, ARRAY_SIZE(yesW)); else - write_output_buffer(writer, noW, sizeof(noW)/sizeof(WCHAR)); + write_output_buffer(writer, noW, ARRAY_SIZE(noW));
- write_output_buffer(writer, crlfW, sizeof(crlfW)/sizeof(WCHAR)); + write_output_buffer(writer, crlfW, ARRAY_SIZE(crlfW)); writer->newline = TRUE; }
@@ -609,7 +628,7 @@ static void write_node_indent(mxwriter *writer) /* This is to workaround PI output logic that always puts newline chars, document prolog PI does that too. */ if (!writer->newline) - write_output_buffer(writer, crlfW, sizeof(crlfW)/sizeof(WCHAR)); + write_output_buffer(writer, crlfW, ARRAY_SIZE(crlfW)); while (indent--) write_output_buffer(writer, tabW, 1);
@@ -1426,7 +1445,7 @@ static HRESULT WINAPI SAXContentHandler_processingInstruction( if (!target) return E_INVALIDARG;
write_node_indent(This); - write_output_buffer(This, openpiW, sizeof(openpiW)/sizeof(WCHAR)); + write_output_buffer(This, openpiW, ARRAY_SIZE(openpiW));
if (*target) write_output_buffer(This, target, ntarget); @@ -1437,7 +1456,7 @@ static HRESULT WINAPI SAXContentHandler_processingInstruction( write_output_buffer(This, data, ndata); }
- write_output_buffer(This, closepiW, sizeof(closepiW)/sizeof(WCHAR)); + write_output_buffer(This, closepiW, ARRAY_SIZE(closepiW)); This->newline = TRUE;
return S_OK; @@ -1505,7 +1524,7 @@ static HRESULT WINAPI SAXLexicalHandler_startDTD(ISAXLexicalHandler *iface,
if (!name) return E_INVALIDARG;
- write_output_buffer(This, doctypeW, sizeof(doctypeW)/sizeof(WCHAR)); + write_output_buffer(This, doctypeW, ARRAY_SIZE(doctypeW));
if (*name) { @@ -1515,7 +1534,7 @@ static HRESULT WINAPI SAXLexicalHandler_startDTD(ISAXLexicalHandler *iface,
if (publicId) { - write_output_buffer(This, publicW, sizeof(publicW)/sizeof(WCHAR)); + write_output_buffer(This, publicW, ARRAY_SIZE(publicW)); write_output_buffer_quoted(This, publicId, publicId_len);
if (!systemId) return E_INVALIDARG; @@ -1530,13 +1549,13 @@ static HRESULT WINAPI SAXLexicalHandler_startDTD(ISAXLexicalHandler *iface, } else if (systemId) { - write_output_buffer(This, systemW, sizeof(systemW)/sizeof(WCHAR)); + write_output_buffer(This, systemW, ARRAY_SIZE(systemW)); write_output_buffer_quoted(This, systemId, systemId_len); if (*systemId) write_output_buffer(This, spaceW, 1); }
- write_output_buffer(This, openintW, sizeof(openintW)/sizeof(WCHAR)); + write_output_buffer(This, openintW, ARRAY_SIZE(openintW));
return S_OK; } @@ -1548,7 +1567,7 @@ static HRESULT WINAPI SAXLexicalHandler_endDTD(ISAXLexicalHandler *iface)
TRACE("(%p)\n", This);
- write_output_buffer(This, closedtdW, sizeof(closedtdW)/sizeof(WCHAR)); + write_output_buffer(This, closedtdW, ARRAY_SIZE(closedtdW));
return S_OK; } @@ -1575,7 +1594,7 @@ static HRESULT WINAPI SAXLexicalHandler_startCDATA(ISAXLexicalHandler *iface) TRACE("(%p)\n", This);
write_node_indent(This); - write_output_buffer(This, scdataW, sizeof(scdataW)/sizeof(WCHAR)); + write_output_buffer(This, scdataW, ARRAY_SIZE(scdataW)); This->cdata = TRUE;
return S_OK; @@ -1588,7 +1607,7 @@ static HRESULT WINAPI SAXLexicalHandler_endCDATA(ISAXLexicalHandler *iface)
TRACE("(%p)\n", This);
- write_output_buffer(This, ecdataW, sizeof(ecdataW)/sizeof(WCHAR)); + write_output_buffer(This, ecdataW, ARRAY_SIZE(ecdataW)); This->cdata = FALSE;
return S_OK; @@ -1607,10 +1626,10 @@ static HRESULT WINAPI SAXLexicalHandler_comment(ISAXLexicalHandler *iface, const close_element_starttag(This); write_node_indent(This);
- write_output_buffer(This, copenW, sizeof(copenW)/sizeof(WCHAR)); + write_output_buffer(This, copenW, ARRAY_SIZE(copenW)); if (nchars) write_output_buffer(This, chars, nchars); - write_output_buffer(This, ccloseW, sizeof(ccloseW)/sizeof(WCHAR)); + write_output_buffer(This, ccloseW, ARRAY_SIZE(ccloseW));
return S_OK; } @@ -1660,14 +1679,14 @@ static HRESULT WINAPI SAXDeclHandler_elementDecl(ISAXDeclHandler *iface,
if (!name || !model) return E_INVALIDARG;
- write_output_buffer(This, elementW, sizeof(elementW)/sizeof(WCHAR)); + write_output_buffer(This, elementW, ARRAY_SIZE(elementW)); if (n_name) { write_output_buffer(This, name, n_name); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); } if (n_model) write_output_buffer(This, model, n_model); - write_output_buffer(This, closetagW, sizeof(closetagW)/sizeof(WCHAR)); + write_output_buffer(This, closetagW, ARRAY_SIZE(closetagW));
return S_OK; } @@ -1685,31 +1704,31 @@ static HRESULT WINAPI SAXDeclHandler_attributeDecl(ISAXDeclHandler *iface, debugstr_wn(attr, n_attr), n_attr, debugstr_wn(type, n_type), n_type, debugstr_wn(Default, n_default), n_default, debugstr_wn(value, n_value), n_value);
- write_output_buffer(This, attlistW, sizeof(attlistW)/sizeof(WCHAR)); + write_output_buffer(This, attlistW, ARRAY_SIZE(attlistW)); if (n_element) { write_output_buffer(This, element, n_element); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (n_attr) { write_output_buffer(This, attr, n_attr); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (n_type) { write_output_buffer(This, type, n_type); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (n_default) { write_output_buffer(This, Default, n_default); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (n_value) write_output_buffer_quoted(This, value, n_value);
- write_output_buffer(This, closetagW, sizeof(closetagW)/sizeof(WCHAR)); + write_output_buffer(This, closetagW, ARRAY_SIZE(closetagW));
return S_OK; } @@ -1724,16 +1743,16 @@ static HRESULT WINAPI SAXDeclHandler_internalEntityDecl(ISAXDeclHandler *iface,
if (!name || !value) return E_INVALIDARG;
- write_output_buffer(This, entityW, sizeof(entityW)/sizeof(WCHAR)); + write_output_buffer(This, entityW, ARRAY_SIZE(entityW)); if (n_name) { write_output_buffer(This, name, n_name); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (n_value) write_output_buffer_quoted(This, value, n_value);
- write_output_buffer(This, closetagW, sizeof(closetagW)/sizeof(WCHAR)); + write_output_buffer(This, closetagW, ARRAY_SIZE(closetagW));
return S_OK; } @@ -1749,26 +1768,26 @@ static HRESULT WINAPI SAXDeclHandler_externalEntityDecl(ISAXDeclHandler *iface,
if (!name || !systemId) return E_INVALIDARG;
- write_output_buffer(This, entityW, sizeof(entityW)/sizeof(WCHAR)); + write_output_buffer(This, entityW, ARRAY_SIZE(entityW)); if (n_name) { write_output_buffer(This, name, n_name); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); }
if (publicId) { - write_output_buffer(This, publicW, sizeof(publicW)/sizeof(WCHAR)); + write_output_buffer(This, publicW, ARRAY_SIZE(publicW)); write_output_buffer_quoted(This, publicId, n_publicId); - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); write_output_buffer_quoted(This, systemId, n_systemId); } else { - write_output_buffer(This, systemW, sizeof(systemW)/sizeof(WCHAR)); + write_output_buffer(This, systemW, ARRAY_SIZE(systemW)); write_output_buffer_quoted(This, systemId, n_systemId); }
- write_output_buffer(This, closetagW, sizeof(closetagW)/sizeof(WCHAR)); + write_output_buffer(This, closetagW, ARRAY_SIZE(closetagW));
return S_OK; } @@ -2280,30 +2299,30 @@ static HRESULT WINAPI SAXDTDHandler_notationDecl(ISAXDTDHandler *iface, if (!name || !n_name) return E_INVALIDARG;
- write_output_buffer(This, notationW, sizeof(notationW)/sizeof(WCHAR)); + write_output_buffer(This, notationW, ARRAY_SIZE(notationW)); write_output_buffer(This, name, n_name);
if (!publicid && !systemid) return E_INVALIDARG;
- write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); if (publicid) { - write_output_buffer(This, publicW, sizeof(publicW)/sizeof(WCHAR)); + write_output_buffer(This, publicW, ARRAY_SIZE(publicW)); write_output_buffer_quoted(This, publicid, n_publicid); if (systemid) { - write_output_buffer(This, spaceW, sizeof(spaceW)/sizeof(WCHAR)); + write_output_buffer(This, spaceW, ARRAY_SIZE(spaceW)); write_output_buffer_quoted(This, systemid, n_systemid); } } else { - write_output_buffer(This, systemW, sizeof(systemW)/sizeof(WCHAR)); + write_output_buffer(This, systemW, ARRAY_SIZE(systemW)); write_output_buffer_quoted(This, systemid, n_systemid); }
- write_output_buffer(This, closetagW, sizeof(closetagW)/sizeof(WCHAR)); + write_output_buffer(This, closetagW, ARRAY_SIZE(closetagW));
return S_OK; } diff --git a/dll/win32/msxml3/node.c b/dll/win32/msxml3/node.c index 2e22d2ff68..bcb4181374 100644 --- a/dll/win32/msxml3/node.c +++ b/dll/win32/msxml3/node.c @@ -18,9 +18,16 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#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 @@ -33,11 +40,25 @@ # include <libxslt/variables.h> # include <libxslt/xsltutils.h> # include <libxslt/xsltInternals.h> +# include <libxslt/documents.h> # endif #endif
+#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#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 @@ -1294,7 +1315,192 @@ static HRESULT node_transform_write_to_stream(xsltStylesheetPtr style, xmlDocPtr return hr; }
-#endif +struct import_buffer +{ + char *data; + int cur; + int len; +}; + +static int XMLCALL import_loader_io_read(void *context, char *out, int len) +{ + struct import_buffer *buffer = (struct import_buffer *)context; + + TRACE("%p, %p, %d\n", context, out, len); + + if (buffer->cur == buffer->len) + return 0; + + len = min(len, buffer->len - buffer->cur); + memcpy(out, &buffer->data[buffer->cur], len); + buffer->cur += len; + + TRACE("read %d\n", len); + + return len; +} + +static int XMLCALL import_loader_io_close(void * context) +{ + struct import_buffer *buffer = (struct import_buffer *)context; + + TRACE("%p\n", context); + + heap_free(buffer->data); + heap_free(buffer); + return 0; +} + +static HRESULT import_loader_onDataAvailable(void *ctxt, char *ptr, DWORD len) +{ + xmlParserInputPtr *input = (xmlParserInputPtr *)ctxt; + xmlParserInputBufferPtr inputbuffer; + struct import_buffer *buffer; + + buffer = heap_alloc(sizeof(*buffer)); + + buffer->data = heap_alloc(len); + memcpy(buffer->data, ptr, len); + buffer->cur = 0; + buffer->len = len; + + inputbuffer = xmlParserInputBufferCreateIO(import_loader_io_read, import_loader_io_close, buffer, + XML_CHAR_ENCODING_NONE); + *input = xmlNewIOInputStream(ctxt, inputbuffer, XML_CHAR_ENCODING_NONE); + if (!*input) + xmlFreeParserInputBuffer(inputbuffer); + + return *input ? S_OK : E_FAIL; +} + +static HRESULT xslt_doc_get_uri(const xmlChar *uri, void *_ctxt, xsltLoadType type, IUri **doc_uri) +{ + xsltStylesheetPtr style = (xsltStylesheetPtr)_ctxt; + IUri *href_uri; + HRESULT hr; + BSTR uriW; + + *doc_uri = NULL; + + uriW = bstr_from_xmlChar(uri); + hr = CreateUri(uriW, Uri_CREATE_ALLOW_RELATIVE | Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &href_uri); + SysFreeString(uriW); + if (FAILED(hr)) + { + WARN("Failed to create href uri, %#x.\n", hr); + return hr; + } + + if (type == XSLT_LOAD_STYLESHEET && style->doc && style->doc->name) + { + IUri *base_uri; + BSTR baseuriW; + + baseuriW = bstr_from_xmlChar((xmlChar *)style->doc->name); + hr = CreateUri(baseuriW, Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &base_uri); + SysFreeString(baseuriW); + if (FAILED(hr)) + { + WARN("Failed to create base uri, %#x.\n", hr); + return hr; + } + + hr = CoInternetCombineIUri(base_uri, href_uri, 0, doc_uri, 0); + IUri_Release(base_uri); + if (FAILED(hr)) + WARN("Failed to combine uris, %#x.\n", hr); + } + else + { + *doc_uri = href_uri; + IUri_AddRef(*doc_uri); + } + + IUri_Release(href_uri); + + return hr; +} + +xmlDocPtr xslt_doc_default_loader(const xmlChar *uri, xmlDictPtr dict, int options, + void *_ctxt, xsltLoadType type) +{ + IUri *import_uri = NULL; + xmlParserInputPtr input; + xmlParserCtxtPtr pctxt; + xmlDocPtr doc = NULL; + IMoniker *moniker; + HRESULT hr; + bsc_t *bsc; + BSTR uriW; + + TRACE("%s, %p, %#x, %p, %d\n", debugstr_a((const char *)uri), dict, options, _ctxt, type); + + pctxt = xmlNewParserCtxt(); + if (!pctxt) + return NULL; + + if (dict && pctxt->dict) + { + xmlDictFree(pctxt->dict); + pctxt->dict = NULL; + } + + if (dict) + { + pctxt->dict = dict; + xmlDictReference(pctxt->dict); + } + + xmlCtxtUseOptions(pctxt, options); + + hr = xslt_doc_get_uri(uri, _ctxt, type, &import_uri); + if (FAILED(hr)) + goto failed; + + hr = CreateURLMonikerEx2(NULL, import_uri, &moniker, 0); + if (FAILED(hr)) + goto failed; + + hr = bind_url(moniker, import_loader_onDataAvailable, &input, &bsc); + IMoniker_Release(moniker); + if (FAILED(hr)) + goto failed; + + if (FAILED(detach_bsc(bsc))) + goto failed; + + if (!input) + goto failed; + + inputPush(pctxt, input); + xmlParseDocument(pctxt); + + if (pctxt->wellFormed) + { + doc = pctxt->myDoc; + /* Set imported uri, to give nested imports a chance. */ + if (IUri_GetPropertyBSTR(import_uri, Uri_PROPERTY_ABSOLUTE_URI, &uriW, 0) == S_OK) + { + doc->name = (char *)xmlchar_from_wcharn(uriW, SysStringLen(uriW), TRUE); + SysFreeString(uriW); + } + } + else + { + doc = NULL; + xmlFreeDoc(pctxt->myDoc); + pctxt->myDoc = NULL; + } + +failed: + xmlFreeParserCtxt(pctxt); + if (import_uri) + IUri_Release(import_uri); + + return doc; +} + +#endif /* SONAME_LIBXSLT */
HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet, BSTR *p, ISequentialStream *stream, const struct xslprocessor_params *params) diff --git a/dll/win32/msxml3/nodelist.c b/dll/win32/msxml3/nodelist.c index f52357019d..52415210df 100644 --- a/dll/win32/msxml3/nodelist.c +++ b/dll/win32/msxml3/nodelist.c @@ -18,9 +18,26 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS
-#include <msxml2did.h> +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" +#include "msxml2did.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
/* This file implements the object returned by childNodes property. Note that this is * not the IXMLDOMNodeList returned by XPath queries - it's implemented in selection.c. @@ -33,6 +50,8 @@
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct { DispatchEx dispex; diff --git a/dll/win32/msxml3/nodemap.c b/dll/win32/msxml3/nodemap.c index 3090d88054..a9fef4769d 100644 --- a/dll/win32/msxml3/nodemap.c +++ b/dll/win32/msxml3/nodemap.c @@ -18,11 +18,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#include "config.h"
-#include <msxml2did.h> +#define COBJMACROS
+#include <stdarg.h> #ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" +#include "msxml2did.h" + +#include "msxml_private.h" + +#include "wine/debug.h" + +#ifdef HAVE_LIBXML2 + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct { diff --git a/dll/win32/msxml3/parseerror.c b/dll/win32/msxml3/parseerror.c index 13fcb97402..438c9eb3c4 100644 --- a/dll/win32/msxml3/parseerror.c +++ b/dll/win32/msxml3/parseerror.c @@ -18,7 +18,29 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" + +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct { diff --git a/dll/win32/msxml3/pi.c b/dll/win32/msxml3/pi.c index 5f0f9833d6..cea9570808 100644 --- a/dll/win32/msxml3/pi.c +++ b/dll/win32/msxml3/pi.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _dom_pi { xmlnode node; diff --git a/dll/win32/msxml3/precomp.h b/dll/win32/msxml3/precomp.h index d272c70203..cd365bdcf8 100644 --- a/dll/win32/msxml3/precomp.h +++ b/dll/win32/msxml3/precomp.h @@ -1,3 +1,4 @@ + #ifndef _MSXML3_PCH_ #define _MSXML3_PCH_
@@ -26,6 +27,4 @@
#include "msxml_private.h"
-WINE_DEFAULT_DEBUG_CHANNEL(msxml); - -#endif /* _MSXML3_PCH_ */ +#endif /* !_MSXML3_PCH_ */ diff --git a/dll/win32/msxml3/saxreader.c b/dll/win32/msxml3/saxreader.c index 5c8923caac..04fab81708 100644 --- a/dll/win32/msxml3/saxreader.c +++ b/dll/win32/msxml3/saxreader.c @@ -18,15 +18,37 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS
-#include "precomp.h" +#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 "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "ole2.h" +#include "msxml6.h" +#include "wininet.h" +#include "urlmon.h" +#include "winreg.h" +#include "shlwapi.h" + +#include "wine/debug.h" + +#include "msxml_private.h" + #ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef enum { FeatureUnknown = 0, @@ -78,6 +100,14 @@ static const WCHAR FeatureNamespacePrefixesW[] = { '/','n','a','m','e','s','p','a','c','e','-','p','r','e','f','i','x','e','s',0 };
+static const WCHAR ExhaustiveErrorsW[] = { + 'e','x','h','a','u','s','t','i','v','e','-','e','r','r','o','r','s',0 +}; + +static const WCHAR SchemaValidationW[] = { + 's','c','h','e','m','a','-','v','a','l','i','d','a','t','i','o','n',0 +}; + struct saxreader_feature_pair { saxreader_feature feature; @@ -85,12 +115,14 @@ struct saxreader_feature_pair };
static const struct saxreader_feature_pair saxreader_feature_map[] = { + { ExhaustiveErrors, ExhaustiveErrorsW }, { ExternalGeneralEntities, FeatureExternalGeneralEntitiesW }, { ExternalParameterEntities, FeatureExternalParameterEntitiesW }, { LexicalHandlerParEntities, FeatureLexicalHandlerParEntitiesW }, { NamespacePrefixes, FeatureNamespacePrefixesW }, { Namespaces, FeatureNamespacesW }, - { ProhibitDTD, FeatureProhibitDTDW } + { ProhibitDTD, FeatureProhibitDTDW }, + { SchemaValidation, SchemaValidationW }, };
static saxreader_feature get_saxreader_feature(const WCHAR *name) @@ -98,7 +130,7 @@ static saxreader_feature get_saxreader_feature(const WCHAR *name) int min, max, n, c;
min = 0; - max = sizeof(saxreader_feature_map)/sizeof(struct saxreader_feature_pair) - 1; + max = ARRAY_SIZE(saxreader_feature_map) - 1;
while (min <= max) { @@ -539,7 +571,7 @@ static BOOL bstr_pool_insert(struct bstrpool *pool, BSTR pool_entry) { if (!pool->pool) { - pool->pool = HeapAlloc(GetProcessHeap(), 0, 16 * sizeof(*pool->pool)); + pool->pool = heap_alloc(16 * sizeof(*pool->pool)); if (!pool->pool) return FALSE;
@@ -548,7 +580,7 @@ static BOOL bstr_pool_insert(struct bstrpool *pool, BSTR pool_entry) } else if (pool->index == pool->len) { - BSTR *realloc = HeapReAlloc(GetProcessHeap(), 0, pool->pool, pool->len * 2 * sizeof(*realloc)); + BSTR *realloc = heap_realloc(pool->pool, pool->len * 2 * sizeof(*realloc));
if (!realloc) return FALSE; @@ -568,7 +600,7 @@ static void free_bstr_pool(struct bstrpool *pool) for (i = 0; i < pool->index; i++) SysFreeString(pool->pool[i]);
- HeapFree(GetProcessHeap(), 0, pool->pool); + heap_free(pool->pool);
pool->pool = NULL; pool->index = pool->len = 0; @@ -646,7 +678,7 @@ static void format_error_message_from_id(saxlocator *This, HRESULT hr) { WCHAR msg[1024]; if(!FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, - NULL, hr, 0, msg, sizeof(msg)/sizeof(msg[0]), NULL)) + NULL, hr, 0, msg, ARRAY_SIZE(msg), NULL)) { FIXME("MSXML errors not yet supported.\n"); msg[0] = '\0'; @@ -1388,7 +1420,7 @@ static BSTR saxreader_get_unescaped_value(const xmlChar *buf, int len) WCHAR *src;
/* leave first '&' from a reference as a value */ - src = dest + (sizeof(ampescW)/sizeof(WCHAR) - 1); + src = dest + ARRAY_SIZE(ampescW) - 1; dest++;
/* move together with null terminator */ @@ -3194,7 +3226,14 @@ static HRESULT WINAPI isaxxmlreader_getFeature( TRACE("(%p)->(%s %p)\n", This, debugstr_w(feature_name), value);
feature = get_saxreader_feature(feature_name); - if (feature == Namespaces || feature == NamespacePrefixes) + + if (This->version < MSXML4 && (feature == ExhaustiveErrors || feature == SchemaValidation)) + return E_INVALIDARG; + + if (feature == Namespaces || + feature == NamespacePrefixes || + feature == ExhaustiveErrors || + feature == SchemaValidation) return get_feature_value(This, feature, value);
FIXME("(%p)->(%s %p) stub\n", This, debugstr_w(feature_name), value); @@ -3214,15 +3253,18 @@ static HRESULT WINAPI isaxxmlreader_putFeature( feature = get_saxreader_feature(feature_name);
/* accepted cases */ - if ((feature == ExternalGeneralEntities && value == VARIANT_FALSE) || - (feature == ExternalParameterEntities && value == VARIANT_FALSE) || + if ((feature == ExhaustiveErrors && value == VARIANT_FALSE) || + (feature == SchemaValidation && value == VARIANT_FALSE) || feature == Namespaces || feature == NamespacePrefixes) { return set_feature_value(This, feature, value); }
- if (feature == LexicalHandlerParEntities || feature == ProhibitDTD) + if (feature == LexicalHandlerParEntities || + feature == ProhibitDTD || + feature == ExternalGeneralEntities || + feature == ExternalParameterEntities) { FIXME("(%p)->(%s %x) stub\n", This, debugstr_w(feature_name), value); return set_feature_value(This, feature, value); diff --git a/dll/win32/msxml3/schema.c b/dll/win32/msxml3/schema.c index 2c761518bd..d603d74218 100644 --- a/dll/win32/msxml3/schema.c +++ b/dll/win32/msxml3/schema.c @@ -19,17 +19,39 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS
-#include <assert.h> +#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 "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "wine/debug.h" + +#include "msxml_private.h" + +#ifdef HAVE_LIBXML2 + +WINE_DEFAULT_DEBUG_CHANNEL(msxml); + /* 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 @@ -38,8 +60,6 @@ /* This is just the number of buckets, should be prime */ #define DEFAULT_HASHTABLE_SIZE 17
-#ifdef HAVE_LIBXML2 - xmlDocPtr XDR_to_XSD_doc(xmlDocPtr xdr_doc, xmlChar const* nsURI);
static const xmlChar XSD_schema[] = "schema"; @@ -729,7 +749,7 @@ void schemasInit(void) /* Resource is loaded as raw data, * need a null-terminated string */ while (buf[datatypes_len - 1] != '>') datatypes_len--; - datatypes_src = HeapAlloc(GetProcessHeap(), 0, datatypes_len + 1); + datatypes_src = heap_alloc(datatypes_len + 1); memcpy(datatypes_src, buf, datatypes_len); datatypes_src[datatypes_len] = 0;
@@ -743,7 +763,7 @@ void schemasInit(void) void schemasCleanup(void) { xmlSchemaFree(datatypes_schema); - HeapFree(GetProcessHeap(), 0, datatypes_src); + heap_free(datatypes_src); xmlSetExternalEntityLoader(_external_entity_loader); }
@@ -789,7 +809,7 @@ static inline schema_cache* impl_from_IXMLDOMSchemaCollection2(IXMLDOMSchemaColl
static inline schema_cache* impl_from_IXMLDOMSchemaCollection(IXMLDOMSchemaCollection* iface) { - return CONTAINING_RECORD(iface, schema_cache, IXMLDOMSchemaCollection2_iface); + return CONTAINING_RECORD((IXMLDOMSchemaCollection2 *)iface, schema_cache, IXMLDOMSchemaCollection2_iface); }
static inline schema_cache* unsafe_impl_from_IXMLDOMSchemaCollection(IXMLDOMSchemaCollection *iface) diff --git a/dll/win32/msxml3/selection.c b/dll/win32/msxml3/selection.c index b0fccb381d..b7c560a9a5 100644 --- a/dll/win32/msxml3/selection.c +++ b/dll/win32/msxml3/selection.c @@ -20,13 +20,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#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 <msxml2did.h> +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" +#include "msxml2did.h" + +#include "msxml_private.h" + +#include "wine/debug.h"
/* This file implements the object returned by a XPath query. Note that this is * not the IXMLDOMNodeList returned by childNodes - it's implemented in nodelist.c. @@ -39,6 +54,8 @@
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + int registerNamespaces(xmlXPathContextPtr ctxt); xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str);
diff --git a/dll/win32/msxml3/stylesheet.c b/dll/win32/msxml3/stylesheet.c index eb6358f6ce..9863ed7aa4 100644 --- a/dll/win32/msxml3/stylesheet.c +++ b/dll/win32/msxml3/stylesheet.c @@ -18,10 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS
-#include <initguid.h> -#include <asptlb.h> +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "initguid.h" +#include "asptlb.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct { diff --git a/dll/win32/msxml3/text.c b/dll/win32/msxml3/text.c index 41f8061435..abd89dbd6b 100644 --- a/dll/win32/msxml3/text.c +++ b/dll/win32/msxml3/text.c @@ -19,14 +19,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#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 "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "wine/debug.h" + #ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _domtext { xmlnode node; @@ -505,7 +522,7 @@ static HRESULT WINAPI domtext_get_xml(
TRACE("(%p)->(%p)\n", This, p);
- return node_get_xml(&This->node, FALSE, p); + return node_get_xml(&This->node, TRUE, p); }
static HRESULT WINAPI domtext_transformNode( @@ -599,15 +616,35 @@ static HRESULT WINAPI domtext_put_data( BSTR data) { domtext *This = impl_from_IXMLDOMText( iface ); - static const WCHAR rnW[] = {'\r','\n',0}; + BSTR normalized_data = NULL; + HRESULT hr; + size_t i, j;
TRACE("(%p)->(%s)\n", This, debugstr_w(data));
- if (data && !strcmpW(rnW, data)) - This->node.node->name = xmlStringTextNoenc; - else - domtext_reset_noenc(This); - return node_set_content(&This->node, data); + if (data) + { + /* normalize line endings */ + normalized_data = SysAllocStringLen(NULL, SysStringLen(data)); + if (!normalized_data) return E_OUTOFMEMORY; + for (i = 0, j = 0; data[i]; i++) + { + if (data[i] == '\r') + { + if (data[i + 1] == '\n') i++; /* change \r\n to just \n */ + normalized_data[j++] = '\n'; /* change \r by itself to \n */ + } + else + normalized_data[j++] = data[i]; + } + normalized_data[j] = 0; + } + + domtext_reset_noenc(This); + hr = node_set_content(&This->node, normalized_data); + + SysFreeString(normalized_data); + return hr; }
static HRESULT WINAPI domtext_get_length( diff --git a/dll/win32/msxml3/uuid.c b/dll/win32/msxml3/uuid.c index f0d83b4e50..4abbe5e476 100644 --- a/dll/win32/msxml3/uuid.c +++ b/dll/win32/msxml3/uuid.c @@ -24,24 +24,22 @@ * Therefore we roll our own. */
-#define WIN32_NO_STATUS -#define _INC_WINDOWS - #include <stdarg.h>
-#include <windef.h> -#include <winbase.h> -#include <objbase.h> +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h"
/* * First include the version 2 headers so that we don't redefine their * uuids - they're already in libuuid */ -#include <msxml.h> +#include "msxml.h"
/* Now we can initialize the rest of the uuids */ -#include <initguid.h> -#include <msxml2.h> +#include "initguid.h" +#include "msxml2.h"
/* * Note that because of a #define in msxml2.h, we end up initializing diff --git a/dll/win32/msxml3/version.rc b/dll/win32/msxml3/version.rc index 3cc9aa8071..cfb07bf222 100644 --- a/dll/win32/msxml3/version.rc +++ b/dll/win32/msxml3/version.rc @@ -22,7 +22,7 @@ #define WINE_PRODUCTVERSION_STR "8.90.1101.0" #define WINE_EXTRAVALUES VALUE "OLESelfRegister",""
-#include <wine/wine_common_ver.rc> +#include "wine/wine_common_ver.rc"
/* @makedep: msxml3.manifest */ WINE_MANIFEST 24 msxml3.manifest diff --git a/dll/win32/msxml3/xdr.c b/dll/win32/msxml3/xdr.c index 101e7f3b57..b5e91bcf22 100644 --- a/dll/win32/msxml3/xdr.c +++ b/dll/win32/msxml3/xdr.c @@ -19,20 +19,23 @@ */
-#include "precomp.h" +#include "config.h"
#include <assert.h> - #ifdef HAVE_LIBXML2 # include <libxml/tree.h> #endif
+#include "wine/debug.h" + /* Both XDR and XSD are valid XML * 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"; static const xmlChar DT_href[] = "urn:schemas-microsoft-com:datatypes"; static const xmlChar XDR_href[] = "urn:schemas-microsoft-com:xml-data"; diff --git a/dll/win32/msxml3/xmldoc.c b/dll/win32/msxml3/xmldoc.c index 34aa8dae3d..d0c65a44a3 100644 --- a/dll/win32/msxml3/xmldoc.c +++ b/dll/win32/msxml3/xmldoc.c @@ -18,10 +18,34 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" +#include "wininet.h" +#include "winreg.h" +#include "shlwapi.h" +#include "ocidl.h" + +#include "wine/debug.h" + +#include "msxml_private.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + /* FIXME: IXMLDocument needs to implement * - IXMLError * - IPersistMoniker @@ -350,9 +374,9 @@ static HRESULT WINAPI xmldoc_put_URL(IXMLDocument *iface, BSTR p) if (!PathIsURLW(p)) { WCHAR fullpath[MAX_PATH]; - DWORD needed = sizeof(url) / sizeof(WCHAR); + DWORD needed = ARRAY_SIZE(url);
- if (!PathSearchAndQualifyW(p, fullpath, sizeof(fullpath) / sizeof(WCHAR))) + if (!PathSearchAndQualifyW(p, fullpath, ARRAY_SIZE(fullpath))) { ERR("can't find path\n"); return E_FAIL; diff --git a/dll/win32/msxml3/xmlelem.c b/dll/win32/msxml3/xmlelem.c index f356c24906..96b2007ce3 100644 --- a/dll/win32/msxml3/xmlelem.c +++ b/dll/win32/msxml3/xmlelem.c @@ -18,10 +18,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#define COBJMACROS + +#include "config.h" + +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" +#include "ocidl.h" + +#include "wine/debug.h" + +#include "msxml_private.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + static HRESULT XMLElementCollection_create( xmlNodePtr node, LPVOID *ppObj );
/********************************************************************** diff --git a/dll/win32/msxml3/xmlparser.c b/dll/win32/msxml3/xmlparser.c index 74709c4c65..6fcdb82c56 100644 --- a/dll/win32/msxml3/xmlparser.c +++ b/dll/win32/msxml3/xmlparser.c @@ -17,12 +17,32 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS
-#include "precomp.h" +#include "config.h"
-#include <initguid.h> +#include <stdarg.h> +#ifdef HAVE_LIBXML2 +# include <libxml/parser.h> +# include <libxml/xmlerror.h> +# include <libxml/HTMLtree.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "msxml6.h" + +#include "msxml_private.h" + +#include "initguid.h" #include "xmlparser.h"
+#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct _xmlparser { IXMLParser IXMLParser_iface; diff --git a/dll/win32/msxml3/xmlview.c b/dll/win32/msxml3/xmlview.c index c2aaaaa0b3..4460412024 100644 --- a/dll/win32/msxml3/xmlview.c +++ b/dll/win32/msxml3/xmlview.c @@ -16,15 +16,37 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "precomp.h" +#include "config.h"
+#include <stdarg.h> + +#define COBJMACROS +#define NONAMELESSUNION + +#ifdef HAVE_LIBXML2 +#include <libxml/parser.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "ole2.h" +#include "msxml6.h" +#ifdef __REACTOS__ #include <wingdi.h> -#include <mshtml.h> -#include <mshtmhst.h> -#include <perhist.h> +#endif +#include "mshtml.h" +#include "mshtmhst.h" +#include "perhist.h" +#include "docobj.h" + +#include "wine/debug.h" + +#include "msxml_private.h"
#ifdef HAVE_LIBXML2
+WINE_DEFAULT_DEBUG_CHANNEL(msxml); + typedef struct { IPersistMoniker IPersistMoniker_iface; @@ -415,7 +437,7 @@ static inline HRESULT handle_xml_load(BindStatusCallback *This)
/* TODO: fix parsing processing instruction value */ if((p = strstrW(V_BSTR(&var), hrefW))) { - p += sizeof(hrefW)/sizeof(WCHAR)-1; + p += ARRAY_SIZE(hrefW) - 1; if(*p!=''' && *p!='"') p = NULL; else { href = p+1; diff --git a/dll/win32/msxml3/xslpattern.h b/dll/win32/msxml3/xslpattern.h index 699112e4fa..7b3ee2c727 100644 --- a/dll/win32/msxml3/xslpattern.h +++ b/dll/win32/msxml3/xslpattern.h @@ -33,8 +33,8 @@ #include <libxml/xmlstring.h> #include <libxml/xpath.h>
-#include <windef.h> -//#include "winnt.h" +#include "windef.h" +#include "winnt.h"
typedef struct _parser_param { void* yyscanner; diff --git a/dll/win32/msxml3/xslpattern.tab.c b/dll/win32/msxml3/xslpattern.tab.c index 66c8dd9a66..3fd70c2ddd 100644 --- a/dll/win32/msxml3/xslpattern.tab.c +++ b/dll/win32/msxml3/xslpattern.tab.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0. */
/* Bison implementation for Yacc-like parsers in C
@@ -44,7 +44,7 @@ #define YYBISON 1
/* Bison version. */ -#define YYBISON_VERSION "3.0.2" +#define YYBISON_VERSION "3.0"
/* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -70,13 +70,16 @@ /* Copy the first part of user declarations. */ #line 21 "xslpattern.y" /* yacc.c:339 */
-#include "precomp.h" - -#include <wine/port.h> +#include "config.h" +#include "wine/port.h"
#ifdef HAVE_LIBXML2 #include "xslpattern.h" #include <libxml/xpathInternals.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml); +
static const xmlChar NameTest_mod_pre[] = "*[name()='"; static const xmlChar NameTest_mod_post[] = "']"; @@ -110,11 +113,11 @@ static void xslpattern_error(parser_param* param, void const* scanner, char cons
#line 115 "xslpattern.tab.c" /* yacc.c:339 */
-# ifndef YY_NULLPTR +# ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# define YY_NULL nullptr # else -# define YY_NULLPTR 0 +# define YY_NULL 0 # endif # endif
@@ -126,7 +129,10 @@ static void xslpattern_error(parser_param* param, void const* scanner, char cons # define YYERROR_VERBOSE 0 #endif
- +/* In a future release of Bison, this section will be replaced + by #include "xslpattern.tab.h". */ +#ifndef YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED +# define YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -180,11 +186,11 @@ typedef int YYSTYPE;
int xslpattern_parse (parser_param* p, void* scanner);
- +#endif /* !YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
-#line 191 "xslpattern.tab.c" /* yacc.c:358 */ +#line 194 "xslpattern.tab.c" /* yacc.c:358 */
#ifdef short # undef short @@ -241,30 +247,11 @@ typedef short int yytype_int16; # endif #endif
-#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -#endif - -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if (! defined __GNUC__ || __GNUC__ < 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) +# define __attribute__(Spec) /* empty */ # endif #endif
@@ -518,7 +505,7 @@ static const char *const yytname[] = "PrimaryExpr", "FunctionCall", "Arguments", "Argument", "UnionExpr", "PathExpr", "FilterExpr", "OrExpr", "BoolOrExpr", "AndExpr", "BoolAndExpr", "EqualityExpr", "BoolEqualityExpr", "RelationalExpr", - "BoolRelationalExpr", "UnaryExpr", "BoolUnaryExpr", "AllExpr", YY_NULLPTR + "BoolRelationalExpr", "UnaryExpr", "BoolUnaryExpr", "AllExpr", YY_NULL }; #endif
@@ -991,11 +978,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; + const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -1052,7 +1039,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -1394,7 +1381,7 @@ yyreduce: { p->out = (yyvsp[0]); } -#line 1401 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1385 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 5: @@ -1406,7 +1393,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1413 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1397 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 6: @@ -1415,7 +1402,7 @@ yyreduce: TRACE("Got UnprefixedName: "%s"\n", (yyvsp[0])); (yyval)=(yyvsp[0]); } -#line 1422 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1406 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 9: @@ -1426,7 +1413,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1433 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1417 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 10: @@ -1435,7 +1422,7 @@ yyreduce: TRACE("Got AbsoluteLocationPath: "/"\n"); (yyval)=xmlStrdup(U("/")); } -#line 1442 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1426 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 13: @@ -1447,7 +1434,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1454 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1438 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 15: @@ -1460,7 +1447,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1467 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1451 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 16: @@ -1471,7 +1458,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1478 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1462 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 17: @@ -1482,7 +1469,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1489 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1473 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 21: @@ -1492,7 +1479,7 @@ yyreduce: (yyval)=(yyvsp[-1]); (yyval)=xmlStrcat((yyval),U("::")); } -#line 1499 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1483 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 22: @@ -1503,7 +1490,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1510 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1494 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 23: @@ -1512,7 +1499,7 @@ yyreduce: TRACE("Got All attributes pattern: "@*"\n"); (yyval)=xmlStrdup(U("@*")); } -#line 1519 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1503 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 26: @@ -1521,7 +1508,7 @@ yyreduce: TRACE("Got NameTest: "*"\n"); (yyval)=xmlStrdup(U("*")); } -#line 1528 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1512 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 27: @@ -1531,7 +1518,7 @@ yyreduce: (yyval)=(yyvsp[-2]); (yyval)=xmlStrcat((yyval),U(":*")); } -#line 1538 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1522 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 28: @@ -1554,7 +1541,7 @@ yyreduce: if (!registeredNsURI) (yyval)=xmlStrcat((yyval),NameTest_mod_post); } -#line 1561 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1545 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 29: @@ -1565,7 +1552,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),NameTest_mod_post); } -#line 1572 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1556 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 30: @@ -1575,7 +1562,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1582 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1566 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 32: @@ -1587,7 +1574,7 @@ yyreduce: xmlFree((yyvsp[-1])); (yyval)=xmlStrcat((yyval),U("]")); } -#line 1594 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1578 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 33: @@ -1597,7 +1584,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1604 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1588 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 37: @@ -1608,7 +1595,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1615 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1599 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 38: @@ -1620,7 +1607,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1627 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1611 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 39: @@ -1629,7 +1616,7 @@ yyreduce: TRACE("Got AbbreviatedStep: ".."\n"); (yyval)=xmlStrdup(U("..")); } -#line 1636 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1620 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 40: @@ -1638,7 +1625,7 @@ yyreduce: TRACE("Got AbbreviatedStep: "."\n"); (yyval)=xmlStrdup(U(".")); } -#line 1645 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1629 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 48: @@ -1650,7 +1637,7 @@ yyreduce: xmlFree((yyvsp[-1])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1657 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1641 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 49: @@ -1662,7 +1649,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1669 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1653 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 52: @@ -1725,7 +1712,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),U(")")); } } -#line 1732 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1716 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 53: @@ -1759,7 +1746,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),U("()")); } } -#line 1766 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1750 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 54: @@ -1770,7 +1757,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1777 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1761 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 58: @@ -1782,7 +1769,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1789 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1773 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 60: @@ -1794,7 +1781,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1801 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1785 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 61: @@ -1806,7 +1793,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1813 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1797 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 64: @@ -1817,7 +1804,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1824 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1808 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 67: @@ -1829,7 +1816,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1836 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1820 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 70: @@ -1841,7 +1828,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1848 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1832 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 73: @@ -1853,7 +1840,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1860 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1844 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 74: @@ -1868,7 +1855,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1875 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1859 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 75: @@ -1880,7 +1867,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1887 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1871 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 76: @@ -1895,7 +1882,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1902 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1886 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 79: @@ -1907,7 +1894,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1914 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1898 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 80: @@ -1922,7 +1909,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1929 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1913 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 81: @@ -1934,7 +1921,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1941 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1925 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 82: @@ -1949,7 +1936,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1956 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1940 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 83: @@ -1961,7 +1948,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1968 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1952 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 84: @@ -1976,7 +1963,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 1983 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1967 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 85: @@ -1988,7 +1975,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 1995 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1979 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 86: @@ -2003,7 +1990,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2010 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 1994 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 89: @@ -2015,7 +2002,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2022 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2006 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 90: @@ -2027,7 +2014,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2034 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2018 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 91: @@ -2039,7 +2026,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2046 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2030 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 92: @@ -2048,7 +2035,7 @@ yyreduce: FIXME("Unrecognized $all$ expression - ignoring\n"); (yyval)=xmlStrdup(U("")); } -#line 2055 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2039 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 93: @@ -2059,7 +2046,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2066 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2050 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 94: @@ -2070,7 +2057,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2077 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2061 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 95: @@ -2081,7 +2068,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2088 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2072 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 96: @@ -2092,7 +2079,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2099 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2083 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 97: @@ -2103,7 +2090,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2110 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2094 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 98: @@ -2114,7 +2101,7 @@ yyreduce: (yyval)=xmlStrcat((yyval),(yyvsp[0])); xmlFree((yyvsp[0])); } -#line 2121 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2105 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 99: @@ -2128,7 +2115,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2135 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2119 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 100: @@ -2142,7 +2129,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2149 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2133 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 101: @@ -2156,7 +2143,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2163 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2147 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 102: @@ -2170,7 +2157,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2177 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2161 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 103: @@ -2184,7 +2171,7 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2191 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2175 "xslpattern.tab.c" /* yacc.c:1646 */ break;
case 104: @@ -2198,11 +2185,11 @@ yyreduce: xmlFree((yyvsp[0])); (yyval)=xmlStrcat((yyval),U(")")); } -#line 2205 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2189 "xslpattern.tab.c" /* yacc.c:1646 */ break;
-#line 2209 "xslpattern.tab.c" /* yacc.c:1646 */ +#line 2193 "xslpattern.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/dll/win32/msxml3/xslpattern.tab.h b/dll/win32/msxml3/xslpattern.tab.h index a9e30f34fb..df8761af4e 100644 --- a/dll/win32/msxml3/xslpattern.tab.h +++ b/dll/win32/msxml3/xslpattern.tab.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0. */
/* Bison interface for Yacc-like parsers in C
@@ -30,8 +30,8 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */
-#ifndef YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED -# define YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED +#ifndef YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED +# define YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -85,4 +85,4 @@ typedef int YYSTYPE;
int xslpattern_parse (parser_param* p, void* scanner);
-#endif /* !YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED */ +#endif /* !YY_XSLPATTERN_E_REACTOSSYNC_GCC_DLL_WIN32_MSXML3_XSLPATTERN_TAB_H_INCLUDED */ diff --git a/dll/win32/msxml3/xslpattern.yy.c b/dll/win32/msxml3/xslpattern.yy.c index d56541e404..c29fd3e3dc 100644 --- a/dll/win32/msxml3/xslpattern.yy.c +++ b/dll/win32/msxml3/xslpattern.yy.c @@ -9,7 +9,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -18,9 +18,9 @@
/* begin standard C headers. */ #include <stdio.h> -//#include <string.h> -//#include <errno.h> -//#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h>
/* end standard C headers. */
@@ -159,15 +159,7 @@ typedef void* yyscan_t;
/* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif
/* The state buf must be large enough to hold one state per character in the main buffer. @@ -179,6 +171,11 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif
+#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 @@ -201,11 +198,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
-#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -223,7 +215,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -302,7 +294,7 @@ static void xslpattern__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yysc
YY_BUFFER_STATE xslpattern__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE xslpattern__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE xslpattern__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE xslpattern__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
void *xslpattern_alloc (yy_size_t ,yyscan_t yyscanner ); void *xslpattern_realloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -334,7 +326,7 @@ void xslpattern_free (void * ,yyscan_t yyscanner );
/* Begin user sect3 */
-#define xslpattern_wrap(n) 1 +#define xslpattern_wrap(yyscanner) 1 #define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR; @@ -526,13 +518,16 @@ static yyconst flex_int16_t yy_chk[178] = * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #line 22 "xslpattern.l" -#include "precomp.h" +#include "config.h" #include "wine/port.h"
#ifdef HAVE_LIBXML2
#include "xslpattern.h" #include "xslpattern.tab.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#define SCAN xslpattern_get_extra(yyscanner)
@@ -569,7 +564,7 @@ static yyconst flex_int16_t yy_chk[178] = /* [3.4] Booleans * ||, &&, $foo$ are XSLPattern only */ /* [3.7] Lexical Structure */ -#line 576 "xslpattern.yy.c" +#line 568 "xslpattern.yy.c"
#define INITIAL 0
@@ -580,7 +575,7 @@ static yyconst flex_int16_t yy_chk[178] = */ #include <unistd.h> #endif - + #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif @@ -598,8 +593,8 @@ struct yyguts_t size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; - int yy_n_chars; - int yyleng_r; + yy_size_t yy_n_chars; + yy_size_t yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -652,7 +647,7 @@ FILE *xslpattern_get_out (yyscan_t yyscanner );
void xslpattern_set_out (FILE * out_str ,yyscan_t yyscanner );
-int xslpattern_get_leng (yyscan_t yyscanner ); +yy_size_t xslpattern_get_leng (yyscan_t yyscanner );
char *xslpattern_get_text (yyscan_t yyscanner );
@@ -660,6 +655,10 @@ int xslpattern_get_lineno (yyscan_t yyscanner );
void xslpattern_set_lineno (int line_number ,yyscan_t yyscanner );
+int xslpattern_get_column (yyscan_t yyscanner ); + +void xslpattern_set_column (int column_no ,yyscan_t yyscanner ); + YYSTYPE * xslpattern_get_lval (yyscan_t yyscanner );
void xslpattern_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); @@ -696,12 +695,7 @@ static int input (yyscan_t yyscanner );
/* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif
/* Copy whatever the last rule matched to the standard output. */ @@ -808,7 +802,7 @@ YY_DECL #line 113 "xslpattern.l"
-#line 815 "xslpattern.yy.c" +#line 806 "xslpattern.yy.c"
yylval = yylval_param;
@@ -1081,7 +1075,7 @@ YY_RULE_SETUP #line 153 "xslpattern.l" ECHO; YY_BREAK -#line 1088 "xslpattern.yy.c" +#line 1079 "xslpattern.yy.c" case YY_STATE_EOF(INITIAL): yyterminate();
@@ -1269,21 +1263,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1314,7 +1308,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
/* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1411,6 +1405,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 95);
+ (void)yyg; return yy_is_jam ? 0 : yy_current_state; }
@@ -1439,7 +1434,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p;
switch ( yy_get_next_buffer( yyscanner ) ) @@ -1719,7 +1714,7 @@ void xslpattern_pop_buffer_state (yyscan_t yyscanner) */ static void xslpattern_ensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
if (!yyg->yy_buffer_stack) { @@ -1817,12 +1812,12 @@ YY_BUFFER_STATE xslpattern__scan_string (yyconst char * yystr , yyscan_t yyscann * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE xslpattern__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE xslpattern__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i;
/* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -1932,7 +1927,7 @@ FILE *xslpattern_get_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -int xslpattern_get_leng (yyscan_t yyscanner) +yy_size_t xslpattern_get_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -1968,7 +1963,7 @@ void xslpattern_set_lineno (int line_number , yyscan_t yyscanner)
/* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "xslpattern_set_lineno called with no buffer" , yyscanner); + YY_FATAL_ERROR( "xslpattern_set_lineno called with no buffer" );
yylineno = line_number; } @@ -1983,7 +1978,7 @@ void xslpattern_set_column (int column_no , yyscan_t yyscanner)
/* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "xslpattern_set_column called with no buffer" , yyscanner); + YY_FATAL_ERROR( "xslpattern_set_column called with no buffer" );
yycolumn = column_no; } @@ -2207,7 +2202,7 @@ void xslpattern_free (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 153 "xslpattern.l" +#line 152 "xslpattern.l"
diff --git a/dll/win32/msxml3/xslpattern.yy.h b/dll/win32/msxml3/xslpattern.yy.h new file mode 100644 index 0000000000..86887f9710 --- /dev/null +++ b/dll/win32/msxml3/xslpattern.yy.h @@ -0,0 +1,346 @@ +#ifndef xslpattern_HEADER_H +#define xslpattern_HEADER_H 1 +#define xslpattern_IN_HEADER 1 + +#line 6 "xslpattern.yy.h" + +#line 8 "xslpattern.yy.h" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void xslpattern_restart (FILE *input_file ,yyscan_t yyscanner ); +void xslpattern__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE xslpattern__create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void xslpattern__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void xslpattern__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void xslpattern_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void xslpattern_pop_buffer_state (yyscan_t yyscanner ); + +YY_BUFFER_STATE xslpattern__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE xslpattern__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE xslpattern__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); + +void *xslpattern_alloc (yy_size_t ,yyscan_t yyscanner ); +void *xslpattern_realloc (void *,yy_size_t ,yyscan_t yyscanner ); +void xslpattern_free (void * ,yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define xslpattern_wrap(yyscanner) 1 +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 + +#endif + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +int xslpattern_lex_init (yyscan_t* scanner); + +int xslpattern_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int xslpattern_lex_destroy (yyscan_t yyscanner ); + +int xslpattern_get_debug (yyscan_t yyscanner ); + +void xslpattern_set_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE xslpattern_get_extra (yyscan_t yyscanner ); + +void xslpattern_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *xslpattern_get_in (yyscan_t yyscanner ); + +void xslpattern_set_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *xslpattern_get_out (yyscan_t yyscanner ); + +void xslpattern_set_out (FILE * out_str ,yyscan_t yyscanner ); + +yy_size_t xslpattern_get_leng (yyscan_t yyscanner ); + +char *xslpattern_get_text (yyscan_t yyscanner ); + +int xslpattern_get_lineno (yyscan_t yyscanner ); + +void xslpattern_set_lineno (int line_number ,yyscan_t yyscanner ); + +int xslpattern_get_column (yyscan_t yyscanner ); + +void xslpattern_set_column (int column_no ,yyscan_t yyscanner ); + +YYSTYPE * xslpattern_get_lval (yyscan_t yyscanner ); + +void xslpattern_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int xslpattern_wrap (yyscan_t yyscanner ); +#else +extern int xslpattern_wrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int xslpattern_lex \ + (YYSTYPE * yylval_param ,yyscan_t yyscanner); + +#define YY_DECL int xslpattern_lex \ + (YYSTYPE * yylval_param , yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#line 152 "xslpattern.l" + + +#line 345 "xslpattern.yy.h" +#undef xslpattern_IN_HEADER +#endif /* xslpattern_HEADER_H */ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index c8177dab4b..d28d5365ab 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -129,7 +129,7 @@ reactos/dll/win32/msvfw32 # Synced to WineStaging-3.3 reactos/dll/win32/msvidc32 # Synced to WineStaging-3.3 reactos/dll/win32/msxml # Synced to WineStaging-3.3 reactos/dll/win32/msxml2 # Synced to WineStaging-3.3 -reactos/dll/win32/msxml3 # Synced to Wine-3.0 +reactos/dll/win32/msxml3 # Synced to WineStaging-3.3 reactos/dll/win32/msxml4 # Synced to WineStaging-2.9 reactos/dll/win32/msxml6 # Synced to WineStaging-2.9 reactos/dll/win32/nddeapi # Synced to WineStaging-2.9