mirror of
https://github.com/reactos/reactos.git
synced 2025-06-27 22:19:45 +00:00
[MSXML3]
* Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64488
This commit is contained in:
parent
6b19e75efa
commit
10c6f73e97
10 changed files with 1317 additions and 1501 deletions
|
@ -1825,12 +1825,18 @@ static HRESULT WINAPI domdoc_createEntityReference(
|
||||||
xmlChar* tagName_to_XPath(const BSTR tagName)
|
xmlChar* tagName_to_XPath(const BSTR tagName)
|
||||||
{
|
{
|
||||||
xmlChar *query, *tmp;
|
xmlChar *query, *tmp;
|
||||||
|
static const xmlChar everything[] = "/descendant::node()";
|
||||||
static const xmlChar mod_pre[] = "*[local-name()='";
|
static const xmlChar mod_pre[] = "*[local-name()='";
|
||||||
static const xmlChar mod_post[] = "']";
|
static const xmlChar mod_post[] = "']";
|
||||||
static const xmlChar prefix[] = "descendant::";
|
static const xmlChar prefix[] = "descendant::";
|
||||||
const WCHAR *tokBegin, *tokEnd;
|
const WCHAR *tokBegin, *tokEnd;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
/* Special case - empty tagname - means select all nodes,
|
||||||
|
except document itself. */
|
||||||
|
if (!*tagName)
|
||||||
|
return xmlStrdup(everything);
|
||||||
|
|
||||||
query = xmlStrdup(prefix);
|
query = xmlStrdup(prefix);
|
||||||
|
|
||||||
tokBegin = tagName;
|
tokBegin = tagName;
|
||||||
|
|
|
@ -1263,7 +1263,12 @@ static HRESULT WINAPI domelem_setAttribute(
|
||||||
xmlFree(local);
|
xmlFree(local);
|
||||||
|
|
||||||
if (ns)
|
if (ns)
|
||||||
return xmlStrEqual(ns->href, xml_value) ? S_OK : E_INVALIDARG;
|
{
|
||||||
|
int cmp = xmlStrEqual(ns->href, xml_value);
|
||||||
|
heap_free(xml_value);
|
||||||
|
heap_free(xml_name);
|
||||||
|
return cmp ? S_OK : E_INVALIDARG;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!xmlSetNsProp(element, NULL, xml_name, xml_value))
|
if (!xmlSetNsProp(element, NULL, xml_name, xml_value))
|
||||||
|
|
|
@ -205,22 +205,6 @@ static inline LPWSTR heap_strdupW(LPCWSTR str)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline LPSTR heap_strdupWtoA(LPCWSTR str)
|
|
||||||
{
|
|
||||||
LPSTR ret = NULL;
|
|
||||||
|
|
||||||
if(str) {
|
|
||||||
DWORD len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
|
|
||||||
ret = heap_alloc(len+1);
|
|
||||||
if(!ret)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len+1, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XSLProcessor parameter list */
|
/* XSLProcessor parameter list */
|
||||||
struct xslprocessor_par
|
struct xslprocessor_par
|
||||||
{
|
{
|
||||||
|
@ -560,8 +544,6 @@ HRESULT create_moniker_from_url(LPCWSTR, IMoniker**) DECLSPEC_HIDDEN;
|
||||||
HRESULT bind_url(IMoniker*, HRESULT (*onDataAvailable)(void*,char*,DWORD), void*, bsc_t**) DECLSPEC_HIDDEN;
|
HRESULT bind_url(IMoniker*, HRESULT (*onDataAvailable)(void*,char*,DWORD), void*, bsc_t**) DECLSPEC_HIDDEN;
|
||||||
HRESULT detach_bsc(bsc_t*) DECLSPEC_HIDDEN;
|
HRESULT detach_bsc(bsc_t*) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
const char *debugstr_variant(const VARIANT*) DECLSPEC_HIDDEN;
|
|
||||||
|
|
||||||
/* Error Codes - not defined anywhere in the public headers */
|
/* Error Codes - not defined anywhere in the public headers */
|
||||||
#define E_XML_ELEMENT_UNDECLARED 0xC00CE00D
|
#define E_XML_ELEMENT_UNDECLARED 0xC00CE00D
|
||||||
#define E_XML_ELEMENT_ID_NOT_FOUND 0xC00CE00E
|
#define E_XML_ELEMENT_ID_NOT_FOUND 0xC00CE00E
|
||||||
|
|
|
@ -52,6 +52,8 @@ MAKE_FUNCPTR(xsltParseStylesheetDoc);
|
||||||
MAKE_FUNCPTR(xsltQuoteUserParams);
|
MAKE_FUNCPTR(xsltQuoteUserParams);
|
||||||
MAKE_FUNCPTR(xsltSaveResultTo);
|
MAKE_FUNCPTR(xsltSaveResultTo);
|
||||||
# undef MAKE_FUNCPTR
|
# undef MAKE_FUNCPTR
|
||||||
|
#else
|
||||||
|
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const IID IID_xmlnode = {0x4f2f4ba2,0xb822,0x11df,{0x8b,0x8a,0x68,0x50,0xdf,0xd7,0x20,0x85}};
|
static const IID IID_xmlnode = {0x4f2f4ba2,0xb822,0x11df,{0x8b,0x8a,0x68,0x50,0xdf,0xd7,0x20,0x85}};
|
||||||
|
@ -1289,7 +1291,8 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet,
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
#else
|
#else
|
||||||
FIXME("libxslt headers were not found at compile time\n");
|
ERR_(winediag)("libxslt headers were not found at compile time. Expect problems.\n");
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,8 +279,8 @@ typedef struct
|
||||||
struct list elements;
|
struct list elements;
|
||||||
|
|
||||||
BSTR namespaceUri;
|
BSTR namespaceUri;
|
||||||
int attributesSize;
|
int attr_alloc_count;
|
||||||
int nb_attributes;
|
int attr_count;
|
||||||
struct _attributes
|
struct _attributes
|
||||||
{
|
{
|
||||||
BSTR szLocalname;
|
BSTR szLocalname;
|
||||||
|
@ -1084,11 +1084,16 @@ static HRESULT WINAPI isaxattributes_getLength(
|
||||||
{
|
{
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
|
|
||||||
*length = This->nb_attributes;
|
*length = This->attr_count;
|
||||||
TRACE("Length set to %d\n", *length);
|
TRACE("Length set to %d\n", *length);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline BOOL is_valid_attr_index(const saxlocator *locator, int index)
|
||||||
|
{
|
||||||
|
return index < locator->attr_count && index >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI isaxattributes_getURI(
|
static HRESULT WINAPI isaxattributes_getURI(
|
||||||
ISAXAttributes* iface,
|
ISAXAttributes* iface,
|
||||||
int index,
|
int index,
|
||||||
|
@ -1098,7 +1103,7 @@ static HRESULT WINAPI isaxattributes_getURI(
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
TRACE("(%p)->(%d)\n", This, index);
|
TRACE("(%p)->(%d)\n", This, index);
|
||||||
|
|
||||||
if(index >= This->nb_attributes || index < 0) return E_INVALIDARG;
|
if(!is_valid_attr_index(This, index)) return E_INVALIDARG;
|
||||||
if(!url || !size) return E_POINTER;
|
if(!url || !size) return E_POINTER;
|
||||||
|
|
||||||
*size = SysStringLen(This->attributes[index].szURI);
|
*size = SysStringLen(This->attributes[index].szURI);
|
||||||
|
@ -1111,36 +1116,36 @@ static HRESULT WINAPI isaxattributes_getURI(
|
||||||
|
|
||||||
static HRESULT WINAPI isaxattributes_getLocalName(
|
static HRESULT WINAPI isaxattributes_getLocalName(
|
||||||
ISAXAttributes* iface,
|
ISAXAttributes* iface,
|
||||||
int nIndex,
|
int index,
|
||||||
const WCHAR **pLocalName,
|
const WCHAR **pLocalName,
|
||||||
int *pLocalNameLength)
|
int *pLocalNameLength)
|
||||||
{
|
{
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
TRACE("(%p)->(%d)\n", This, nIndex);
|
TRACE("(%p)->(%d)\n", This, index);
|
||||||
|
|
||||||
if(nIndex>=This->nb_attributes || nIndex<0) return E_INVALIDARG;
|
if(!is_valid_attr_index(This, index)) return E_INVALIDARG;
|
||||||
if(!pLocalName || !pLocalNameLength) return E_POINTER;
|
if(!pLocalName || !pLocalNameLength) return E_POINTER;
|
||||||
|
|
||||||
*pLocalNameLength = SysStringLen(This->attributes[nIndex].szLocalname);
|
*pLocalNameLength = SysStringLen(This->attributes[index].szLocalname);
|
||||||
*pLocalName = This->attributes[nIndex].szLocalname;
|
*pLocalName = This->attributes[index].szLocalname;
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI isaxattributes_getQName(
|
static HRESULT WINAPI isaxattributes_getQName(
|
||||||
ISAXAttributes* iface,
|
ISAXAttributes* iface,
|
||||||
int nIndex,
|
int index,
|
||||||
const WCHAR **pQName,
|
const WCHAR **pQName,
|
||||||
int *pQNameLength)
|
int *pQNameLength)
|
||||||
{
|
{
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
TRACE("(%p)->(%d)\n", This, nIndex);
|
TRACE("(%p)->(%d)\n", This, index);
|
||||||
|
|
||||||
if(nIndex>=This->nb_attributes || nIndex<0) return E_INVALIDARG;
|
if(!is_valid_attr_index(This, index)) return E_INVALIDARG;
|
||||||
if(!pQName || !pQNameLength) return E_POINTER;
|
if(!pQName || !pQNameLength) return E_POINTER;
|
||||||
|
|
||||||
*pQNameLength = SysStringLen(This->attributes[nIndex].szQName);
|
*pQNameLength = SysStringLen(This->attributes[index].szQName);
|
||||||
*pQName = This->attributes[nIndex].szQName;
|
*pQName = This->attributes[index].szQName;
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -1158,7 +1163,7 @@ static HRESULT WINAPI isaxattributes_getName(
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
TRACE("(%p)->(%d)\n", This, index);
|
TRACE("(%p)->(%d)\n", This, index);
|
||||||
|
|
||||||
if(index>=This->nb_attributes || index<0) return E_INVALIDARG;
|
if(!is_valid_attr_index(This, index)) return E_INVALIDARG;
|
||||||
if(!uri || !pUriLength || !localName || !pLocalNameSize
|
if(!uri || !pUriLength || !localName || !pLocalNameSize
|
||||||
|| !QName || !pQNameLength) return E_POINTER;
|
|| !QName || !pQNameLength) return E_POINTER;
|
||||||
|
|
||||||
|
@ -1189,7 +1194,7 @@ static HRESULT WINAPI isaxattributes_getIndexFromName(
|
||||||
|
|
||||||
if(!pUri || !pLocalName || !index) return E_POINTER;
|
if(!pUri || !pLocalName || !index) return E_POINTER;
|
||||||
|
|
||||||
for(i=0; i<This->nb_attributes; i++)
|
for(i=0; i<This->attr_count; i++)
|
||||||
{
|
{
|
||||||
if(cUriLength!=SysStringLen(This->attributes[i].szURI)
|
if(cUriLength!=SysStringLen(This->attributes[i].szURI)
|
||||||
|| cocalNameLength!=SysStringLen(This->attributes[i].szLocalname))
|
|| cocalNameLength!=SysStringLen(This->attributes[i].szLocalname))
|
||||||
|
@ -1221,7 +1226,7 @@ static HRESULT WINAPI isaxattributes_getIndexFromQName(
|
||||||
if(!pQName || !index) return E_POINTER;
|
if(!pQName || !index) return E_POINTER;
|
||||||
if(!nQNameLength) return E_INVALIDARG;
|
if(!nQNameLength) return E_INVALIDARG;
|
||||||
|
|
||||||
for(i=0; i<This->nb_attributes; i++)
|
for(i=0; i<This->attr_count; i++)
|
||||||
{
|
{
|
||||||
if(nQNameLength!=SysStringLen(This->attributes[i].szQName)) continue;
|
if(nQNameLength!=SysStringLen(This->attributes[i].szQName)) continue;
|
||||||
if(memcmp(pQName, This->attributes[i].szQName, sizeof(WCHAR)*nQNameLength)) continue;
|
if(memcmp(pQName, This->attributes[i].szQName, sizeof(WCHAR)*nQNameLength)) continue;
|
||||||
|
@ -1283,7 +1288,7 @@ static HRESULT WINAPI isaxattributes_getValue(
|
||||||
saxlocator *This = impl_from_ISAXAttributes( iface );
|
saxlocator *This = impl_from_ISAXAttributes( iface );
|
||||||
TRACE("(%p)->(%d)\n", This, index);
|
TRACE("(%p)->(%d)\n", This, index);
|
||||||
|
|
||||||
if(index>=This->nb_attributes || index<0) return E_INVALIDARG;
|
if(!is_valid_attr_index(This, index)) return E_INVALIDARG;
|
||||||
if(!value || !nValue) return E_POINTER;
|
if(!value || !nValue) return E_POINTER;
|
||||||
|
|
||||||
*nValue = SysStringLen(This->attributes[index].szValue);
|
*nValue = SysStringLen(This->attributes[index].szValue);
|
||||||
|
@ -1401,7 +1406,7 @@ static void free_attribute_values(saxlocator *locator)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < locator->nb_attributes; i++)
|
for (i = 0; i < locator->attr_count; i++)
|
||||||
{
|
{
|
||||||
SysFreeString(locator->attributes[i].szLocalname);
|
SysFreeString(locator->attributes[i].szLocalname);
|
||||||
locator->attributes[i].szLocalname = NULL;
|
locator->attributes[i].szLocalname = NULL;
|
||||||
|
@ -1428,19 +1433,19 @@ static HRESULT SAXAttributes_populate(saxlocator *locator,
|
||||||
if ((locator->saxreader->features & NamespacePrefixes) == 0)
|
if ((locator->saxreader->features & NamespacePrefixes) == 0)
|
||||||
nb_namespaces = 0;
|
nb_namespaces = 0;
|
||||||
|
|
||||||
locator->nb_attributes = nb_namespaces + nb_attributes;
|
locator->attr_count = nb_namespaces + nb_attributes;
|
||||||
if(locator->nb_attributes > locator->attributesSize)
|
if(locator->attr_count > locator->attr_alloc_count)
|
||||||
{
|
{
|
||||||
int new_size = locator->attributesSize * 2;
|
int new_size = locator->attr_count * 2;
|
||||||
attrs = heap_realloc_zero(locator->attributes, new_size * sizeof(struct _attributes));
|
attrs = heap_realloc_zero(locator->attributes, new_size * sizeof(struct _attributes));
|
||||||
if(!attrs)
|
if(!attrs)
|
||||||
{
|
{
|
||||||
free_attribute_values(locator);
|
free_attribute_values(locator);
|
||||||
locator->nb_attributes = 0;
|
locator->attr_count = 0;
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
locator->attributes = attrs;
|
locator->attributes = attrs;
|
||||||
locator->attributesSize = new_size;
|
locator->attr_alloc_count = new_size;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1684,7 +1689,7 @@ static void libxmlEndElementNS(
|
||||||
if (!saxreader_has_handler(This, SAXContentHandler))
|
if (!saxreader_has_handler(This, SAXContentHandler))
|
||||||
{
|
{
|
||||||
free_attribute_values(This);
|
free_attribute_values(This);
|
||||||
This->nb_attributes = 0;
|
This->attr_count = 0;
|
||||||
free_element_entry(element);
|
free_element_entry(element);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1706,7 +1711,7 @@ static void libxmlEndElementNS(
|
||||||
element->qname, SysStringLen(element->qname));
|
element->qname, SysStringLen(element->qname));
|
||||||
|
|
||||||
free_attribute_values(This);
|
free_attribute_values(This);
|
||||||
This->nb_attributes = 0;
|
This->attr_count = 0;
|
||||||
|
|
||||||
if (sax_callback_failed(This, hr))
|
if (sax_callback_failed(This, hr))
|
||||||
{
|
{
|
||||||
|
@ -2304,7 +2309,7 @@ static ULONG WINAPI isaxlocator_Release(
|
||||||
SysFreeString(This->systemId);
|
SysFreeString(This->systemId);
|
||||||
SysFreeString(This->namespaceUri);
|
SysFreeString(This->namespaceUri);
|
||||||
|
|
||||||
for(index=0; index<This->attributesSize; index++)
|
for(index = 0; index < This->attr_alloc_count; index++)
|
||||||
{
|
{
|
||||||
SysFreeString(This->attributes[index].szLocalname);
|
SysFreeString(This->attributes[index].szLocalname);
|
||||||
SysFreeString(This->attributes[index].szValue);
|
SysFreeString(This->attributes[index].szValue);
|
||||||
|
@ -2440,9 +2445,9 @@ static HRESULT SAXLocator_create(saxreader *reader, saxlocator **ppsaxlocator, B
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
locator->attributesSize = 8;
|
locator->attr_alloc_count = 8;
|
||||||
locator->nb_attributes = 0;
|
locator->attr_count = 0;
|
||||||
locator->attributes = heap_alloc_zero(sizeof(struct _attributes)*locator->attributesSize);
|
locator->attributes = heap_alloc_zero(sizeof(struct _attributes)*locator->attr_alloc_count);
|
||||||
if(!locator->attributes)
|
if(!locator->attributes)
|
||||||
{
|
{
|
||||||
ISAXXMLReader_Release(&reader->ISAXXMLReader_iface);
|
ISAXXMLReader_Release(&reader->ISAXXMLReader_iface);
|
||||||
|
|
|
@ -1038,8 +1038,6 @@ HRESULT cache_from_doc_ns(IXMLDOMSchemaCollection2 *iface, xmlnode *node)
|
||||||
{
|
{
|
||||||
int pos = 0, len = xmlXPathNodeSetGetLength(nodeset->nodesetval);
|
int pos = 0, len = xmlXPathNodeSetGetLength(nodeset->nodesetval);
|
||||||
|
|
||||||
if (len == 0) return S_OK;
|
|
||||||
|
|
||||||
while (pos < len)
|
while (pos < len)
|
||||||
{
|
{
|
||||||
xmlNodePtr node = xmlXPathNodeSetItem(nodeset->nodesetval, pos);
|
xmlNodePtr node = xmlXPathNodeSetItem(nodeset->nodesetval, pos);
|
||||||
|
@ -1173,11 +1171,14 @@ static HRESULT WINAPI schema_cache_Invoke(IXMLDOMSchemaCollection2* iface,
|
||||||
static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri, VARIANT var)
|
static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri, VARIANT var)
|
||||||
{
|
{
|
||||||
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
|
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
|
||||||
xmlChar* name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW);
|
xmlChar* name;
|
||||||
|
|
||||||
TRACE("(%p)->(%s %s)\n", This, debugstr_w(uri), debugstr_variant(&var));
|
TRACE("(%p)->(%s %s)\n", This, debugstr_w(uri), debugstr_variant(&var));
|
||||||
|
|
||||||
if (This->read_only) return E_FAIL;
|
if (This->read_only) return E_FAIL;
|
||||||
|
|
||||||
|
name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW);
|
||||||
|
|
||||||
switch (V_VT(&var))
|
switch (V_VT(&var))
|
||||||
{
|
{
|
||||||
case VT_NULL:
|
case VT_NULL:
|
||||||
|
@ -1297,11 +1298,13 @@ static HRESULT WINAPI schema_cache_get(IXMLDOMSchemaCollection2* iface, BSTR uri
|
||||||
static HRESULT WINAPI schema_cache_remove(IXMLDOMSchemaCollection2* iface, BSTR uri)
|
static HRESULT WINAPI schema_cache_remove(IXMLDOMSchemaCollection2* iface, BSTR uri)
|
||||||
{
|
{
|
||||||
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
|
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
|
||||||
xmlChar* name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW);
|
xmlChar* name;
|
||||||
|
|
||||||
TRACE("(%p)->(%s)\n", This, debugstr_w(uri));
|
TRACE("(%p)->(%s)\n", This, debugstr_w(uri));
|
||||||
|
|
||||||
if (This->version == MSXML6) return E_NOTIMPL;
|
if (This->version == MSXML6) return E_NOTIMPL;
|
||||||
|
|
||||||
|
name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW);
|
||||||
cache_remove_entry(This, name);
|
cache_remove_entry(This, name);
|
||||||
heap_free(name);
|
heap_free(name);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,10 +1,8 @@
|
||||||
|
/* A Bison parser, made by GNU Bison 3.0.2. */
|
||||||
|
|
||||||
/* A Bison parser, made by GNU Bison 2.4.1. */
|
/* Bison interface for Yacc-like parsers in C
|
||||||
|
|
||||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -32,13 +30,21 @@
|
||||||
This special exception was added by the Free Software Foundation in
|
This special exception was added by the Free Software Foundation in
|
||||||
version 2.2 of Bison. */
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
|
#ifndef YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED
|
||||||
|
# define YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED
|
||||||
|
/* Debug traces. */
|
||||||
|
#ifndef YYDEBUG
|
||||||
|
# define YYDEBUG 0
|
||||||
|
#endif
|
||||||
|
#if YYDEBUG
|
||||||
|
extern int xslpattern_debug;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Tokens. */
|
/* Token type. */
|
||||||
#ifndef YYTOKENTYPE
|
#ifndef YYTOKENTYPE
|
||||||
# define YYTOKENTYPE
|
# define YYTOKENTYPE
|
||||||
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
enum yytokentype
|
||||||
know about them. */
|
{
|
||||||
enum yytokentype {
|
|
||||||
TOK_Parent = 258,
|
TOK_Parent = 258,
|
||||||
TOK_Self = 259,
|
TOK_Self = 259,
|
||||||
TOK_DblFSlash = 260,
|
TOK_DblFSlash = 260,
|
||||||
|
@ -68,15 +74,15 @@
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Value type. */
|
||||||
|
|
||||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
typedef int YYSTYPE;
|
typedef int YYSTYPE;
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int xslpattern_parse (parser_param* p, void* scanner);
|
||||||
|
|
||||||
|
#endif /* !YY_XSLPATTERN_XSLPATTERN_TAB_H_INCLUDED */
|
||||||
|
|
|
@ -186,6 +186,11 @@ static void xslpattern_error(parser_param* param, void const* scanner, char cons
|
||||||
$$=xmlStrcat($$,$2);
|
$$=xmlStrcat($$,$2);
|
||||||
xmlFree($2);
|
xmlFree($2);
|
||||||
}
|
}
|
||||||
|
| '@' '*'
|
||||||
|
{
|
||||||
|
TRACE("Got All attributes pattern: \"@*\"\n");
|
||||||
|
$$=xmlStrdup(U("@*"));
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
/* [2.3] Node Tests */
|
/* [2.3] Node Tests */
|
||||||
|
|
|
@ -140,7 +140,7 @@ reactos/dll/win32/msvfw32 # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/msvidc32 # Synced to Wine-1.7.17
|
reactos/dll/win32/msvidc32 # Synced to Wine-1.7.17
|
||||||
reactos/dll/win32/msxml # Synced to Wine-1.7.17
|
reactos/dll/win32/msxml # Synced to Wine-1.7.17
|
||||||
reactos/dll/win32/msxml2 # Synced to Wine-1.7.17
|
reactos/dll/win32/msxml2 # Synced to Wine-1.7.17
|
||||||
reactos/dll/win32/msxml3 # Synced to Wine-1.7.17
|
reactos/dll/win32/msxml3 # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/msxml4 # Synced to Wine-1.7.17
|
reactos/dll/win32/msxml4 # Synced to Wine-1.7.17
|
||||||
reactos/dll/win32/msxml6 # Synced to Wine-1.7.17
|
reactos/dll/win32/msxml6 # Synced to Wine-1.7.17
|
||||||
reactos/dll/win32/nddeapi # Synced to Wine-1.7.17
|
reactos/dll/win32/nddeapi # Synced to Wine-1.7.17
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue