Module: wine Branch: master Commit: db2761a8d6b2c2885df9e32c0738c93b2ac0da25 URL: http://source.winehq.org/git/wine.git/?a=commit;h=db2761a8d6b2c2885df9e32c07...
Author: Piotr Caban piotr.caban@gmail.com Date: Tue Oct 7 22:11:04 2008 +0200
msxml: Added ISAXLexicalHandler_comment event.
---
dlls/msxml3/saxreader.c | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index 94a7e1d..3e7e332 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -1260,6 +1260,37 @@ static void libxmlSetDocumentLocator( format_error_message_from_id(This, hr); }
+static void libxmlComment(void *ctx, const xmlChar *value) +{ + saxlocator *This = ctx; + BSTR bValue; + HRESULT hr; + xmlChar *beg = (xmlChar*)This->pParserCtxt->input->cur; + + while(memcmp(beg-4, "<!--", sizeof(char[4]))) beg--; + update_position(This, beg); + + if(!This->vbInterface && !This->saxreader->lexicalHandler) return; + if(This->vbInterface && !This->saxreader->vblexicalHandler) return; + + bValue = bstr_from_xmlChar(value); + + if(This->vbInterface) + hr = IVBSAXLexicalHandler_comment( + This->saxreader->vblexicalHandler, &bValue); + else + hr = ISAXLexicalHandler_comment( + This->saxreader->lexicalHandler, + bValue, SysStringLen(bValue)); + + SysFreeString(bValue); + + if(FAILED(hr)) + format_error_message_from_id(This, hr); + + update_position(This, NULL); +} + static void libxmlFatalError(void *ctx, const char *msg, ...) { saxlocator *This = ctx; @@ -2719,6 +2750,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj) reader->sax.endElementNs = libxmlEndElementNS; reader->sax.characters = libxmlCharacters; reader->sax.setDocumentLocator = libxmlSetDocumentLocator; + reader->sax.comment = libxmlComment; reader->sax.error = libxmlFatalError; reader->sax.fatalError = libxmlFatalError;