Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
e84c4102
Commit
e84c4102
authored
Oct 24, 2011
by
Piotr Caban
Committed by
Alexandre Julliard
Oct 25, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msxml3: Make positions returned by ISAXLocator compatible with msxml6.
parent
a8444d7f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
49 additions
and
11 deletions
+49
-11
factory.c
dlls/msxml3/factory.c
+7
-3
msxml_private.h
dlls/msxml3/msxml_private.h
+1
-1
saxreader.c
dlls/msxml3/saxreader.c
+41
-7
No files found.
dlls/msxml3/factory.c
View file @
e84c4102
...
...
@@ -81,7 +81,12 @@ static const struct clsid_version_t clsid_versions_table[] =
{
&
CLSID_MXXMLWriter
,
MSXML_DEFAULT
},
{
&
CLSID_MXXMLWriter30
,
MSXML3
},
{
&
CLSID_MXXMLWriter40
,
MSXML4
},
{
&
CLSID_MXXMLWriter60
,
MSXML6
}
{
&
CLSID_MXXMLWriter60
,
MSXML6
},
{
&
CLSID_SAXXMLReader
,
MSXML_DEFAULT
},
{
&
CLSID_SAXXMLReader30
,
MSXML3
},
{
&
CLSID_SAXXMLReader40
,
MSXML4
},
{
&
CLSID_SAXXMLReader60
,
MSXML6
}
};
static
MSXML_VERSION
get_msxml_version
(
const
GUID
*
clsid
)
...
...
@@ -267,7 +272,6 @@ static HRESULT DOMClassFactory_Create(const GUID *clsid, REFIID riid, void **ppv
}
static
ClassFactory
xmldoccf
=
{
{
&
ClassFactoryVtbl
},
XMLDocument_create
};
static
ClassFactory
saxreadcf
=
{
{
&
ClassFactoryVtbl
},
SAXXMLReader_create
};
static
ClassFactory
httpreqcf
=
{
{
&
ClassFactoryVtbl
},
XMLHTTPRequest_create
};
static
ClassFactory
xsltemplatecf
=
{
{
&
ClassFactoryVtbl
},
XSLTemplate_create
};
static
ClassFactory
mxnsmanagercf
=
{
{
&
ClassFactoryVtbl
},
MXNamespaceManager_create
};
...
...
@@ -317,7 +321,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv )
IsEqualCLSID
(
rclsid
,
&
CLSID_SAXXMLReader40
)
||
IsEqualCLSID
(
rclsid
,
&
CLSID_SAXXMLReader60
))
{
cf
=
&
saxreadcf
.
IClassFactory_iface
;
return
DOMClassFactory_Create
(
rclsid
,
riid
,
ppv
,
SAXXMLReader_create
)
;
}
else
if
(
IsEqualCLSID
(
rclsid
,
&
CLSID_XMLHTTPRequest
)
||
IsEqualCLSID
(
rclsid
,
&
CLSID_XMLHTTP
)
||
...
...
dlls/msxml3/msxml_private.h
View file @
e84c4102
...
...
@@ -433,7 +433,7 @@ extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, B
extern
HRESULT
DOMDocument_create
(
MSXML_VERSION
,
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
SchemaCache_create
(
MSXML_VERSION
,
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
XMLDocument_create
(
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
SAXXMLReader_create
(
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
SAXXMLReader_create
(
MSXML_VERSION
,
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
XMLHTTPRequest_create
(
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
XSLTemplate_create
(
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
extern
HRESULT
MXWriter_create
(
MSXML_VERSION
,
IUnknown
*
,
void
**
)
DECLSPEC_HIDDEN
;
...
...
dlls/msxml3/saxreader.c
View file @
e84c4102
...
...
@@ -92,6 +92,7 @@ typedef struct _saxreader
BOOL
isParsing
;
struct
bstrpool
pool
;
enum
ReaderFeatures
features
;
MSXML_VERSION
version
;
}
saxreader
;
typedef
struct
_saxlocator
...
...
@@ -1155,6 +1156,13 @@ static void libxmlStartDocument(void *ctx)
saxlocator
*
This
=
ctx
;
HRESULT
hr
;
if
(
This
->
saxreader
->
version
>=
MSXML6
)
{
xmlChar
*
end
=
(
xmlChar
*
)
This
->
pParserCtxt
->
input
->
cur
;
while
(
end
>
This
->
pParserCtxt
->
input
->
base
&&
*
end
!=
'>'
)
end
--
;
update_position
(
This
,
end
);
}
if
(
has_content_handler
(
This
))
{
if
(
This
->
vbInterface
)
...
...
@@ -1174,8 +1182,15 @@ static void libxmlEndDocument(void *ctx)
saxlocator
*
This
=
ctx
;
HRESULT
hr
;
This
->
column
=
0
;
This
->
line
=
0
;
if
(
This
->
saxreader
->
version
>=
MSXML6
)
{
update_position
(
This
,
NULL
);
if
(
This
->
column
>
1
)
This
->
line
++
;
This
->
column
=
0
;
}
else
{
This
->
column
=
0
;
This
->
line
=
0
;
}
if
(
This
->
ret
!=
S_OK
)
return
;
...
...
@@ -1208,7 +1223,9 @@ static void libxmlStartElementNS(
saxattributes
*
attr
;
int
index
;
if
(
*
(
This
->
pParserCtxt
->
input
->
cur
)
==
'/'
)
if
(
This
->
saxreader
->
version
>=
MSXML6
)
update_position
(
This
,
NULL
);
else
if
(
*
(
This
->
pParserCtxt
->
input
->
cur
)
==
'/'
)
update_position
(
This
,
(
xmlChar
*
)
This
->
pParserCtxt
->
input
->
cur
+
2
);
else
update_position
(
This
,
(
xmlChar
*
)
This
->
pParserCtxt
->
input
->
cur
+
1
);
...
...
@@ -1274,9 +1291,13 @@ static void libxmlEndElementNS(
int
nsNr
,
index
;
end
=
(
xmlChar
*
)
This
->
pParserCtxt
->
input
->
cur
;
if
(
*
(
end
-
1
)
!=
'>'
||
*
(
end
-
2
)
!=
'/'
)
if
(
This
->
saxreader
->
version
>=
MSXML6
)
{
while
(
end
>
This
->
pParserCtxt
->
input
->
base
&&
*
end
!=
'>'
)
end
--
;
}
else
if
(
*
(
end
-
1
)
!=
'>'
||
*
(
end
-
2
)
!=
'/'
)
{
while
(
end
-
2
>=
This
->
pParserCtxt
->
input
->
base
&&
*
(
end
-
2
)
!=
'<'
&&
*
(
end
-
1
)
!=
'/'
)
end
--
;
}
update_position
(
This
,
end
);
...
...
@@ -1362,6 +1383,18 @@ static void libxmlCharacters(
if
(
!
lastEvent
)
*
end
=
'\n'
;
if
(
This
->
saxreader
->
version
>=
MSXML6
)
{
update_position
(
This
,
end
);
if
(
*
end
==
'\n'
)
{
This
->
line
++
;
This
->
column
=
1
;
}
else
This
->
column
++
;
if
(
!
lastEvent
)
This
->
column
=
0
;
}
Chars
=
pooled_bstr_from_xmlCharN
(
&
This
->
saxreader
->
pool
,
cur
,
end
-
cur
+
1
);
if
(
This
->
vbInterface
)
hr
=
IVBSAXContentHandler_characters
(
...
...
@@ -1905,7 +1938,7 @@ static HRESULT SAXLocator_create(saxreader *reader, saxlocator **ppsaxlocator, B
locator
->
publicId
=
NULL
;
locator
->
systemId
=
NULL
;
locator
->
lastCur
=
NULL
;
locator
->
line
=
0
;
locator
->
line
=
(
reader
->
version
>=
MSXML6
?
1
:
0
)
;
locator
->
column
=
0
;
locator
->
ret
=
S_OK
;
locator
->
nsStackSize
=
8
;
...
...
@@ -3046,7 +3079,7 @@ static const struct ISAXXMLReaderVtbl isaxreader_vtbl =
isaxxmlreader_parseURL
};
HRESULT
SAXXMLReader_create
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
)
HRESULT
SAXXMLReader_create
(
MSXML_VERSION
version
,
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
)
{
saxreader
*
reader
;
...
...
@@ -3072,6 +3105,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj)
reader
->
pool
.
index
=
0
;
reader
->
pool
.
len
=
0
;
reader
->
features
=
Namespaces
;
reader
->
version
=
version
;
memset
(
&
reader
->
sax
,
0
,
sizeof
(
xmlSAXHandler
));
reader
->
sax
.
initialized
=
XML_SAX2_MAGIC
;
...
...
@@ -3095,7 +3129,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj)
#else
HRESULT
SAXXMLReader_create
(
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
)
HRESULT
SAXXMLReader_create
(
MSXML_VERSION
version
,
IUnknown
*
pUnkOuter
,
LPVOID
*
ppObj
)
{
MESSAGE
(
"This program tried to use a SAX XML Reader object, but
\n
"
"libxml2 support was not present at compile time.
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment