ntdll: Allow closing tags for 'supportedOS' elements.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
832b90d4a5
commit
f8cca445fb
|
@ -426,9 +426,9 @@ static const char compat_manifest_vista_7_8_10_81[] =
|
|||
" <assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
" <compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\">"
|
||||
" <application>"
|
||||
" <supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\" />" /* Windows Vista */
|
||||
" <supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\" ></supportedOS>" /* Windows Vista */
|
||||
" <supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\" />" /* Windows 7 */
|
||||
" <supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\" />" /* Windows 8 */
|
||||
" <supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\" ></supportedOS>" /* Windows 8 */
|
||||
" <supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\" />" /* Windows 10 */
|
||||
" <supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\" />" /* Windows 8.1 */
|
||||
" </application>"
|
||||
|
|
|
@ -2245,28 +2245,19 @@ static BOOL parse_file_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct
|
|||
return ret;
|
||||
}
|
||||
|
||||
static BOOL parse_compatibility_application_elem(xmlbuf_t* xmlbuf, struct assembly* assembly,
|
||||
struct actctx_loader* acl)
|
||||
static BOOL parse_supportedos_elem(xmlbuf_t *xmlbuf, struct assembly *assembly, struct actctx_loader *acl)
|
||||
{
|
||||
xmlstr_t attr_name, attr_value, elem;
|
||||
BOOL end = FALSE, ret = TRUE, error;
|
||||
xmlstr_t attr_name, attr_value;
|
||||
BOOL end = FALSE, error;
|
||||
|
||||
while (ret && (ret = next_xml_elem(xmlbuf, &elem)))
|
||||
{
|
||||
if (xmlstr_cmp_end(&elem, applicationW))
|
||||
{
|
||||
ret = parse_end_element(xmlbuf);
|
||||
break;
|
||||
}
|
||||
else if (xmlstr_cmp(&elem, supportedOSW))
|
||||
{
|
||||
while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end))
|
||||
{
|
||||
if (xmlstr_cmp(&attr_name, IdW))
|
||||
{
|
||||
UNICODE_STRING str;
|
||||
COMPATIBILITY_CONTEXT_ELEMENT *compat;
|
||||
UNICODE_STRING str;
|
||||
GUID compat_id;
|
||||
|
||||
str.Buffer = (PWSTR)attr_value.ptr;
|
||||
str.Length = str.MaximumLength = (USHORT)attr_value.len * sizeof(WCHAR);
|
||||
if (RtlGUIDFromString(&str, &compat_id) == STATUS_SUCCESS)
|
||||
|
@ -2286,6 +2277,29 @@ static BOOL parse_compatibility_application_elem(xmlbuf_t* xmlbuf, struct assemb
|
|||
debugstr_xmlstr(&attr_value));
|
||||
}
|
||||
}
|
||||
|
||||
if (error) return FALSE;
|
||||
if (end) return TRUE;
|
||||
|
||||
return parse_expect_end_elem(xmlbuf, supportedOSW, asmv1W);
|
||||
}
|
||||
|
||||
static BOOL parse_compatibility_application_elem(xmlbuf_t* xmlbuf, struct assembly* assembly,
|
||||
struct actctx_loader* acl)
|
||||
{
|
||||
BOOL ret = TRUE;
|
||||
xmlstr_t elem;
|
||||
|
||||
while (ret && (ret = next_xml_elem(xmlbuf, &elem)))
|
||||
{
|
||||
if (xmlstr_cmp_end(&elem, applicationW))
|
||||
{
|
||||
ret = parse_end_element(xmlbuf);
|
||||
break;
|
||||
}
|
||||
else if (xmlstr_cmp(&elem, supportedOSW))
|
||||
{
|
||||
ret = parse_supportedos_elem(xmlbuf, assembly, acl);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue