From 5a1a7455707ae73fc128d741ea52bde35e74117a Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Sat, 15 Jun 2013 00:54:44 +0400 Subject: [PATCH] xmllite: Store prefix for start tag and return it. --- dlls/xmllite/reader.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c index 5256c35a2d..9193d2f5e2 100644 --- a/dlls/xmllite/reader.c +++ b/dlls/xmllite/reader.c @@ -80,6 +80,7 @@ typedef enum typedef enum { StringValue_LocalName, + StringValue_Prefix, StringValue_QualifiedName, StringValue_Value, StringValue_Last @@ -1749,6 +1750,7 @@ static HRESULT reader_parse_element(xmlreader *reader) reader->nodetype = XmlNodeType_Element; reader->resumestate = XmlReadResumeState_Initial; reader_set_strvalue(reader, StringValue_LocalName, &local); + reader_set_strvalue(reader, StringValue_Prefix, &prefix); reader_set_strvalue(reader, StringValue_QualifiedName, &qname); break; } @@ -2260,12 +2262,14 @@ static HRESULT WINAPI xmlreader_GetLocalName(IXmlReader* iface, LPCWSTR *name, U return S_OK; } -static HRESULT WINAPI xmlreader_GetPrefix(IXmlReader* iface, - LPCWSTR *prefix, - UINT *prefix_length) +static HRESULT WINAPI xmlreader_GetPrefix(IXmlReader* iface, LPCWSTR *prefix, UINT *len) { - FIXME("(%p %p %p): stub\n", iface, prefix, prefix_length); - return E_NOTIMPL; + xmlreader *This = impl_from_IXmlReader(iface); + + TRACE("(%p)->(%p %p)\n", This, prefix, len); + *prefix = This->strvalues[StringValue_Prefix].str; + if (len) *len = This->strvalues[StringValue_Prefix].len; + return S_OK; } static HRESULT WINAPI xmlreader_GetValue(IXmlReader* iface, const WCHAR **value, UINT *len)