Piotr Caban : msxml3: Added ISAXLocator_getLineNumber and ISAXLocator_getColumnNumber partial implementation .

Alexandre Julliard julliard at winehq.org
Thu Jul 17 06:38:25 CDT 2008


Module: wine
Branch: master
Commit: 4cdcc0256289c3b6a6c592e0c58307db1db49c82
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4cdcc0256289c3b6a6c592e0c58307db1db49c82

Author: Piotr Caban <piotr.caban at gmail.com>
Date:   Thu Jul 17 00:41:11 2008 +0200

msxml3: Added ISAXLocator_getLineNumber and ISAXLocator_getColumnNumber partial implementation.

---

 dlls/msxml3/saxreader.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index 1a3aa37..1cbaf41 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -62,6 +62,8 @@ typedef struct _saxlocator
     saxreader *saxreader;
     HRESULT ret;
     xmlParserCtxtPtr pParserCtxt;
+    int lastLine;
+    int lastColumn;
 } saxlocator;
 
 static inline saxreader *impl_from_IVBSAXXMLReader( IVBSAXXMLReader *iface )
@@ -94,6 +96,9 @@ static void libxmlStartDocument(void *ctx)
             This->ret = hr;
         }
     }
+
+    This->lastColumn = xmlSAX2GetColumnNumber(This->pParserCtxt);
+    This->lastLine = xmlSAX2GetLineNumber(This->pParserCtxt);
 }
 
 /*** ISAXLocator interface ***/
@@ -154,8 +159,8 @@ static HRESULT WINAPI isaxlocator_getColumnNumber(
 {
     saxlocator *This = impl_from_ISAXLocator( iface );
 
-    FIXME("(%p)->(%p) stub\n", This, pnColumn);
-    return E_NOTIMPL;
+    *pnColumn = This->lastColumn;
+    return S_OK;
 }
 
 static HRESULT WINAPI isaxlocator_getLineNumber(
@@ -164,8 +169,8 @@ static HRESULT WINAPI isaxlocator_getLineNumber(
 {
     saxlocator *This = impl_from_ISAXLocator( iface );
 
-    FIXME("(%p)->(%p) stub\n", This, pnLine);
-    return E_NOTIMPL;
+    *pnLine = This->lastLine;
+    return S_OK;
 }
 
 static HRESULT WINAPI isaxlocator_getPublicId(
@@ -214,6 +219,8 @@ static HRESULT SAXLocator_create(saxreader *reader, saxlocator **ppsaxlocator)
     ISAXXMLReader_AddRef((ISAXXMLReader*)&reader->lpSAXXMLReaderVtbl);
 
     locator->pParserCtxt = NULL;
+    locator->lastLine = 0;
+    locator->lastColumn = 0;
     locator->ret = S_OK;
 
     *ppsaxlocator = locator;




More information about the wine-cvs mailing list