You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
113 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b5ea332d6 | ||
|
|
81e3e6dafa | ||
|
|
41cb9f5179 | ||
|
|
41e15516bd | ||
|
|
6347bdd1fc | ||
|
|
677b445b0d | ||
|
|
a2f82c5c85 | ||
|
|
cfe1b94e0f | ||
|
|
2be4bfb8fe | ||
|
|
cae1b3eba0 | ||
|
|
32b29ad4d8 | ||
|
|
a6054cf2e9 | ||
|
|
f6dacd2f9a | ||
|
|
43c064ef3c | ||
|
|
5c5a8f3b2c | ||
|
|
bd135b1477 | ||
|
|
9692b2e5eb | ||
|
|
bcf5899a3c | ||
|
|
73480ec459 | ||
|
|
fd3372e71c | ||
|
|
3dec70bf32 | ||
|
|
b201ee708b | ||
|
|
74534094a0 | ||
|
|
1830eaa655 | ||
|
|
f168899ce1 | ||
|
|
f8ce6cbb21 | ||
|
|
64877514fb | ||
|
|
310072bb63 | ||
|
|
2f619b2a53 | ||
|
|
76f8eb15f1 | ||
|
|
6364ada0ad | ||
|
|
caa2471e20 | ||
|
|
2414b1da6a | ||
|
|
7ab49f09a2 | ||
|
|
a3d08de2b8 | ||
|
|
1c969cbbed | ||
|
|
0e7472e7a3 | ||
|
|
f3e785a3a8 | ||
|
|
dfddef9654 | ||
|
|
d87ec36ccf | ||
|
|
a3710ff21f | ||
|
|
0e67af3d09 | ||
|
|
8b1e0eec1d | ||
|
|
b8ca0eae9f | ||
|
|
350eb136a5 | ||
|
|
f40763d8a5 | ||
|
|
4462586c80 | ||
|
|
aae98229b0 | ||
|
|
7ad10427be | ||
|
|
9912133b6a | ||
|
|
14450482bc | ||
|
|
a8947d8016 | ||
|
|
a5a402a003 | ||
|
|
2505882bc6 | ||
|
|
760b2fbc35 | ||
|
|
909415c8d0 | ||
|
|
5cd622f667 | ||
|
|
4004f81390 | ||
|
|
28c6e62cb9 | ||
|
|
df37ef7599 | ||
|
|
3b4ce945a6 | ||
|
|
6d67766abd | ||
|
|
143e59bfe2 | ||
|
|
7dbce711de | ||
|
|
53bbade133 | ||
|
|
fe5b02cbbc | ||
|
|
abb7ae8b1c | ||
|
|
0fc2f15ac5 | ||
|
|
c646dc9283 | ||
|
|
d0b0b5be24 | ||
|
|
8cbc70df46 | ||
|
|
a8684593e2 | ||
|
|
e015f0590c | ||
|
|
dea57ccd5f | ||
|
|
fd8727a320 | ||
|
|
dc77e28b0f | ||
|
|
213037cb33 | ||
|
|
fce121fcd9 | ||
|
|
2dc013940d | ||
|
|
8229c98169 | ||
|
|
d7b71f0bb4 | ||
|
|
3511fe03ee | ||
|
|
7ffd7fc333 | ||
|
|
7be9c41c35 | ||
|
|
e002d94a8b | ||
|
|
5eb920dd83 | ||
|
|
968e22f2ed | ||
|
|
f9e86098b3 | ||
|
|
023588ac34 | ||
|
|
d3b70d6278 | ||
|
|
47fea9ffa2 | ||
|
|
2a073f334b | ||
|
|
3b0de86bf9 | ||
|
|
b9d3415f29 | ||
|
|
84bb779a9b | ||
|
|
3553024da0 | ||
|
|
991f2e8ebf | ||
|
|
837404f454 | ||
|
|
18032936f1 | ||
|
|
0ae7315541 | ||
|
|
f257f37b92 | ||
|
|
371d6ff606 | ||
|
|
88ffa8d374 | ||
|
|
7734f7a808 | ||
|
|
0192a7b36c | ||
|
|
5566259fb5 | ||
|
|
7bdc1d6bac | ||
|
|
852a7d9a7d | ||
|
|
3b6b470bca | ||
|
|
cd3ee9b25d | ||
|
|
c7ea1850c7 | ||
|
|
41c7c741d7 | ||
|
|
009f571ba1 |
@@ -1,4 +1,4 @@
|
||||
From 7529755fcc41fda650aac6b27f34438354435d34 Mon Sep 17 00:00:00 2001
|
||||
From b51fdc7e211f676d169c937209bf689e57252c5d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 22 Mar 2016 21:58:40 +0100
|
||||
Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer.
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
|
||||
index 9280b5d32..2f0974a4c 100644
|
||||
index aa51c744297..7cad015480f 100644
|
||||
--- a/dlls/dwrite/font.c
|
||||
+++ b/dlls/dwrite/font.c
|
||||
@@ -1887,7 +1887,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
|
||||
@@ -2130,7 +2130,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (IDWriteFontVtbl*)&dwritefontvtbl);
|
||||
@@ -21,7 +21,7 @@ index 9280b5d32..2f0974a4c 100644
|
||||
}
|
||||
|
||||
struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
@@ -1895,7 +1895,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
@@ -2138,7 +2138,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (IDWriteFontFaceVtbl*)&dwritefontfacevtbl);
|
||||
@@ -31,10 +31,10 @@ index 9280b5d32..2f0974a4c 100644
|
||||
|
||||
static struct dwrite_fontfacereference *unsafe_impl_from_IDWriteFontFaceReference(IDWriteFontFaceReference *iface)
|
||||
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
|
||||
index b9321157a..76ea23ba6 100644
|
||||
index 1f6201a6a93..35791d5c22e 100644
|
||||
--- a/dlls/dwrite/layout.c
|
||||
+++ b/dlls/dwrite/layout.c
|
||||
@@ -5895,7 +5895,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl =
|
||||
@@ -5886,7 +5886,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl =
|
||||
static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface)
|
||||
{
|
||||
return (iface->lpVtbl == (IDWriteTextFormatVtbl*)&dwritetextformatvtbl) ?
|
||||
@@ -42,7 +42,7 @@ index b9321157a..76ea23ba6 100644
|
||||
+ CONTAINING_RECORD((IDWriteTextFormat3 *)iface, struct dwrite_textformat, IDWriteTextFormat3_iface) : NULL;
|
||||
}
|
||||
|
||||
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style,
|
||||
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight,
|
||||
--
|
||||
2.24.0
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
#Depends: ntdll-FLS_Callbacks
|
||||
#Depends: ntdll-NtAlertThreadByThreadId
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
From 7e73f449d158f0d6a6b6b421d073dbaf1741e1c7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 7 Aug 2017 02:22:11 +0200
|
||||
Subject: server: Correctly treat zero access mask in duplicate_token
|
||||
wineserver call.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/security.c | 14 +++++++-------
|
||||
server/token.c | 3 ++-
|
||||
2 files changed, 9 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index 4a03db27e69..f1a64e29dea 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -7438,7 +7438,7 @@ static void test_token_security_descriptor(void)
|
||||
ret = DuplicateTokenEx(token4, 0, NULL, SecurityImpersonation, TokenImpersonation, &token5);
|
||||
ok(ret, "DuplicateTokenEx failed with error %u\n", GetLastError());
|
||||
ret = SetThreadToken(NULL, token5);
|
||||
- todo_wine ok(ret, "SetThreadToken failed with error %u\n", GetLastError());
|
||||
+ ok(ret, "SetThreadToken failed with error %u\n", GetLastError());
|
||||
CloseHandle(token4);
|
||||
|
||||
/* Restrict current process token while impersonating a medium integrity token */
|
||||
@@ -7503,16 +7503,16 @@ static void test_token_security_descriptor(void)
|
||||
|
||||
size = 0;
|
||||
ret = GetKernelObjectSecurity(token6, LABEL_SECURITY_INFORMATION, NULL, 0, &size);
|
||||
- todo_wine ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
+ ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
"Unexpected GetKernelObjectSecurity return value %u, error %u\n", ret, GetLastError());
|
||||
|
||||
sd3 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
|
||||
ret = GetKernelObjectSecurity(token6, LABEL_SECURITY_INFORMATION, sd3, size, &size);
|
||||
- todo_wine ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
|
||||
+ ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
|
||||
|
||||
sacl = NULL;
|
||||
ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted);
|
||||
- todo_wine ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
|
||||
+ ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
|
||||
todo_wine ok(present, "No SACL in the security descriptor\n");
|
||||
todo_wine ok(sacl != NULL, "NULL SACL in the security descriptor\n");
|
||||
|
||||
@@ -7606,16 +7606,16 @@ static void test_token_security_descriptor(void)
|
||||
|
||||
size = 0;
|
||||
ret = GetKernelObjectSecurity(token4, LABEL_SECURITY_INFORMATION, NULL, 0, &size);
|
||||
- todo_wine ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
+ ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
"Unexpected GetKernelObjectSecurity return value %u, error %u\n", ret, GetLastError());
|
||||
|
||||
sd3 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
|
||||
ret = GetKernelObjectSecurity(token4, LABEL_SECURITY_INFORMATION, sd3, size, &size);
|
||||
- todo_wine ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
|
||||
+ ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
|
||||
|
||||
sacl = NULL;
|
||||
ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted);
|
||||
- todo_wine ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
|
||||
+ ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
|
||||
todo_wine ok(present, "No SACL in the security descriptor\n");
|
||||
todo_wine ok(sacl != NULL, "NULL SACL in the security descriptor\n");
|
||||
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 6a1085bae12..292e1df80fd 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -1376,7 +1376,8 @@ DECL_HANDLER(duplicate_token)
|
||||
struct token *token = token_duplicate( src_token, req->primary, req->impersonation_level, sd, NULL, 0, NULL, 0 );
|
||||
if (token)
|
||||
{
|
||||
- reply->new_handle = alloc_handle_no_access_check( current->process, token, req->access, objattr->attributes );
|
||||
+ unsigned int access = req->access ? req->access : get_handle_access( current->process, req->handle );
|
||||
+ reply->new_handle = alloc_handle_no_access_check( current->process, token, access, objattr->attributes );
|
||||
release_object( token );
|
||||
}
|
||||
release_object( src_token );
|
||||
--
|
||||
2.13.1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From ef218059ebea8a860dea6b12a7b28984c51d2777 Mon Sep 17 00:00:00 2001
|
||||
From 3478a4e41c07a66e7e913c54bcf5ad52e16a8fee Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 2 Oct 2020 11:29:24 -0500
|
||||
Subject: [PATCH] bcrypt: Allow multiple backends to coexist.
|
||||
@@ -8,13 +8,13 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
dlls/bcrypt/Makefile.in | 3 +-
|
||||
dlls/bcrypt/bcrypt_internal.h | 3 +
|
||||
dlls/bcrypt/gnutls.c | 32 ++++--
|
||||
dlls/bcrypt/macos.c | 18 +++-
|
||||
dlls/bcrypt/unixlib.c | 194 ++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 235 insertions(+), 15 deletions(-)
|
||||
dlls/bcrypt/macos.c | 18 ++-
|
||||
dlls/bcrypt/unixlib.c | 211 ++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 252 insertions(+), 15 deletions(-)
|
||||
create mode 100644 dlls/bcrypt/unixlib.c
|
||||
|
||||
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
|
||||
index 24803fb2d7c..46a20d473dd 100644
|
||||
index 24803fb2d7cb..46a20d473dd7 100644
|
||||
--- a/dlls/bcrypt/Makefile.in
|
||||
+++ b/dlls/bcrypt/Makefile.in
|
||||
@@ -11,6 +11,7 @@ C_SRCS = \
|
||||
@@ -27,11 +27,11 @@ index 24803fb2d7c..46a20d473dd 100644
|
||||
|
||||
RC_SRCS = version.rc
|
||||
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
|
||||
index 463672db470..90551868cf0 100644
|
||||
index eb1361115093..3c7110d05f84 100644
|
||||
--- a/dlls/bcrypt/bcrypt_internal.h
|
||||
+++ b/dlls/bcrypt/bcrypt_internal.h
|
||||
@@ -215,4 +215,7 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_import_ecc)( struct key *, UCHAR *, ULONG );
|
||||
@@ -218,4 +218,7 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
|
||||
};
|
||||
|
||||
+struct key_funcs *gnutls_lib_init(DWORD reason);
|
||||
@@ -39,10 +39,10 @@ index 463672db470..90551868cf0 100644
|
||||
+
|
||||
#endif /* __BCRYPT_INTERNAL_H */
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 5ed51e8704c..7a1eada329c 100644
|
||||
index c065ac31fba3..9490ea8612a8 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -347,9 +347,12 @@ fail:
|
||||
@@ -371,9 +371,12 @@ fail:
|
||||
|
||||
static void gnutls_uninitialize(void)
|
||||
{
|
||||
@@ -58,8 +58,8 @@ index 5ed51e8704c..7a1eada329c 100644
|
||||
}
|
||||
|
||||
struct buffer
|
||||
@@ -1848,19 +1851,28 @@ static const struct key_funcs key_funcs =
|
||||
key_import_ecc
|
||||
@@ -1949,19 +1952,28 @@ static const struct key_funcs key_funcs =
|
||||
key_import_rsa
|
||||
};
|
||||
|
||||
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
|
||||
@@ -95,11 +95,11 @@ index 5ed51e8704c..7a1eada329c 100644
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
|
||||
index d8bba46ad5c..8df5ca8645f 100644
|
||||
index 44906519cef0..2a88aec8362c 100644
|
||||
--- a/dlls/bcrypt/macos.c
|
||||
+++ b/dlls/bcrypt/macos.c
|
||||
@@ -287,11 +287,21 @@ static const struct key_funcs key_funcs =
|
||||
key_import_ecc
|
||||
@@ -302,11 +302,21 @@ static const struct key_funcs key_funcs =
|
||||
key_import_rsa
|
||||
};
|
||||
|
||||
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
|
||||
@@ -126,10 +126,10 @@ index d8bba46ad5c..8df5ca8645f 100644
|
||||
#endif
|
||||
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
|
||||
new file mode 100644
|
||||
index 00000000000..a158ec1630a
|
||||
index 000000000000..9cbb25f5740c
|
||||
--- /dev/null
|
||||
+++ b/dlls/bcrypt/unixlib.c
|
||||
@@ -0,0 +1,194 @@
|
||||
@@ -0,0 +1,211 @@
|
||||
+#if 0
|
||||
+#pragma makedep unix
|
||||
+#endif
|
||||
@@ -261,6 +261,19 @@ index 00000000000..a158ec1630a
|
||||
+ FIXME( "not implemented\n" );
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS CDECL key_asymmetric_decrypt( struct key *key, UCHAR *input, ULONG input_len,
|
||||
+ UCHAR *output, ULONG *output_len )
|
||||
+{
|
||||
+ FIXME( "not implemented\n" );
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input_len )
|
||||
+{
|
||||
+ FIXME( "not implemented\n" );
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+static struct key_funcs key_funcs =
|
||||
+{
|
||||
+ key_set_property,
|
||||
@@ -273,6 +286,7 @@ index 00000000000..a158ec1630a
|
||||
+ key_symmetric_destroy,
|
||||
+ key_asymmetric_init,
|
||||
+ key_asymmetric_generate,
|
||||
+ key_asymmetric_decrypt,
|
||||
+ key_asymmetric_duplicate,
|
||||
+ key_asymmetric_sign,
|
||||
+ key_asymmetric_verify,
|
||||
@@ -280,7 +294,8 @@ index 00000000000..a158ec1630a
|
||||
+ key_export_dsa_capi,
|
||||
+ key_export_ecc,
|
||||
+ key_import_dsa_capi,
|
||||
+ key_import_ecc
|
||||
+ key_import_ecc,
|
||||
+ key_import_rsa,
|
||||
+};
|
||||
+
|
||||
+NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
|
||||
@@ -306,6 +321,7 @@ index 00000000000..a158ec1630a
|
||||
+ RESOLVE_FUNC(symmetric_destroy)
|
||||
+ RESOLVE_FUNC(asymmetric_init)
|
||||
+ RESOLVE_FUNC(asymmetric_generate)
|
||||
+ RESOLVE_FUNC(asymmetric_decrypt)
|
||||
+ RESOLVE_FUNC(asymmetric_duplicate)
|
||||
+ RESOLVE_FUNC(asymmetric_sign)
|
||||
+ RESOLVE_FUNC(asymmetric_verify)
|
||||
@@ -314,6 +330,7 @@ index 00000000000..a158ec1630a
|
||||
+ RESOLVE_FUNC(export_ecc)
|
||||
+ RESOLVE_FUNC(import_dsa_capi)
|
||||
+ RESOLVE_FUNC(import_ecc)
|
||||
+ RESOLVE_FUNC(import_rsa)
|
||||
+
|
||||
+#undef RESOLVE_FUNC
|
||||
+
|
||||
@@ -325,5 +342,5 @@ index 00000000000..a158ec1630a
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.28.0
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 6f2d3fa75e7fd783816d52af0ca9b3c16f2a947e Mon Sep 17 00:00:00 2001
|
||||
From e2442f39015a5982bfd15479ee06d7163d36771d Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 2 Oct 2020 12:11:49 -0500
|
||||
Subject: [PATCH] bcrypt: Implement BCryptSecretAgreement with libgcrypt.
|
||||
@@ -9,19 +9,19 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
dlls/bcrypt/Makefile.in | 1 +
|
||||
dlls/bcrypt/bcrypt_internal.h | 4 +
|
||||
dlls/bcrypt/bcrypt_main.c | 55 ++++++-
|
||||
dlls/bcrypt/gcrypt.c | 290 ++++++++++++++++++++++++++++++++++
|
||||
dlls/bcrypt/gcrypt.c | 292 ++++++++++++++++++++++++++++++++++
|
||||
dlls/bcrypt/gnutls.c | 3 +-
|
||||
dlls/bcrypt/macos.c | 3 +-
|
||||
dlls/bcrypt/tests/bcrypt.c | 2 +-
|
||||
dlls/bcrypt/unixlib.c | 15 +-
|
||||
9 files changed, 377 insertions(+), 10 deletions(-)
|
||||
dlls/bcrypt/unixlib.c | 13 +-
|
||||
9 files changed, 378 insertions(+), 9 deletions(-)
|
||||
create mode 100644 dlls/bcrypt/gcrypt.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 372785ee0fd..68fff9bf6d8 100644
|
||||
index b6b8d49342f3..7c1c8a7ddaf4 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -45,6 +45,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
|
||||
@@ -46,6 +46,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
|
||||
AC_ARG_WITH(float-abi, AS_HELP_STRING([--with-float-abi=abi],[specify the ABI (soft|softfp|hard) for ARM platforms]))
|
||||
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))
|
||||
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
|
||||
@@ -29,7 +29,7 @@ index 372785ee0fd..68fff9bf6d8 100644
|
||||
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))
|
||||
AC_ARG_WITH(gettextpo, AS_HELP_STRING([--with-gettextpo],[use the GetTextPO library to rebuild po files]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_gettext_po_h=no; fi])
|
||||
@@ -2000,6 +2001,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
|
||||
@@ -1989,6 +1990,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
|
||||
[vkd3d ${notice_platform}development files not found (or too old), Direct3D 12 won't be supported.])
|
||||
test "x$ac_cv_lib_soname_vkd3d" != "x" || enable_d3d12=${enable_d3d12:-no}
|
||||
|
||||
@@ -50,7 +50,7 @@ index 372785ee0fd..68fff9bf6d8 100644
|
||||
|
||||
AC_SUBST(EXTRACFLAGS,"")
|
||||
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
|
||||
index 46a20d473dd..4a3016784af 100644
|
||||
index 46a20d473dd7..4a3016784af3 100644
|
||||
--- a/dlls/bcrypt/Makefile.in
|
||||
+++ b/dlls/bcrypt/Makefile.in
|
||||
@@ -7,6 +7,7 @@ EXTRADLLFLAGS = -mno-cygwin
|
||||
@@ -62,10 +62,10 @@ index 46a20d473dd..4a3016784af 100644
|
||||
macos.c \
|
||||
md2.c \
|
||||
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
|
||||
index 90551868cf0..03254f72d92 100644
|
||||
index 3c7110d05f84..e7991eac077a 100644
|
||||
--- a/dlls/bcrypt/bcrypt_internal.h
|
||||
+++ b/dlls/bcrypt/bcrypt_internal.h
|
||||
@@ -191,6 +191,8 @@ struct key
|
||||
@@ -192,6 +192,8 @@ struct key
|
||||
struct secret
|
||||
{
|
||||
struct object hdr;
|
||||
@@ -74,10 +74,10 @@ index 90551868cf0..03254f72d92 100644
|
||||
};
|
||||
|
||||
struct key_funcs
|
||||
@@ -213,9 +215,11 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_export_ecc)( struct key *, UCHAR *, ULONG, ULONG * );
|
||||
@@ -216,9 +218,11 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_import_dsa_capi)( struct key *, UCHAR *, ULONG );
|
||||
NTSTATUS (CDECL *key_import_ecc)( struct key *, UCHAR *, ULONG );
|
||||
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
|
||||
+ NTSTATUS (CDECL *key_compute_secret_ecc)( unsigned char *privkey_in, struct key *pubkey_in, struct secret *secret );
|
||||
};
|
||||
|
||||
@@ -87,10 +87,10 @@ index 90551868cf0..03254f72d92 100644
|
||||
|
||||
#endif /* __BCRYPT_INTERNAL_H */
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 85d06f6001e..0f023d02076 100644
|
||||
index a1423dcd8368..0655c5dcfe81 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1828,9 +1828,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
@@ -1932,9 +1932,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
{
|
||||
struct key *privkey = privatekey;
|
||||
struct key *pubkey = publickey;
|
||||
@@ -104,7 +104,7 @@ index 85d06f6001e..0f023d02076 100644
|
||||
|
||||
if (!privkey || privkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
if (!pubkey || pubkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
@@ -1839,18 +1842,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
@@ -1943,18 +1946,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
if (!(secret = heap_alloc_zero( sizeof(*secret) ))) return STATUS_NO_MEMORY;
|
||||
secret->hdr.magic = MAGIC_SECRET;
|
||||
|
||||
@@ -146,7 +146,7 @@ index 85d06f6001e..0f023d02076 100644
|
||||
heap_free( secret );
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1860,12 +1884,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
@@ -1964,12 +1988,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
{
|
||||
struct secret *secret = handle;
|
||||
|
||||
@@ -184,10 +184,10 @@ index 85d06f6001e..0f023d02076 100644
|
||||
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
|
||||
diff --git a/dlls/bcrypt/gcrypt.c b/dlls/bcrypt/gcrypt.c
|
||||
new file mode 100644
|
||||
index 00000000000..00849358c68
|
||||
index 000000000000..e72c27feb519
|
||||
--- /dev/null
|
||||
+++ b/dlls/bcrypt/gcrypt.c
|
||||
@@ -0,0 +1,290 @@
|
||||
@@ -0,0 +1,292 @@
|
||||
+#if 0
|
||||
+#pragma makedep unix
|
||||
+#endif
|
||||
@@ -450,6 +450,8 @@ index 00000000000..00849358c68
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ key_compute_secret_ecc
|
||||
+};
|
||||
+
|
||||
@@ -479,38 +481,38 @@ index 00000000000..00849358c68
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 7a1eada329c..4505a8d965c 100644
|
||||
index 9490ea8612a8..78d0f2d95966 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -1848,7 +1848,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_dsa_capi,
|
||||
@@ -1949,7 +1949,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_ecc,
|
||||
key_import_dsa_capi,
|
||||
- key_import_ecc
|
||||
+ key_import_ecc,
|
||||
key_import_ecc,
|
||||
- key_import_rsa
|
||||
+ key_import_rsa,
|
||||
+ NULL
|
||||
};
|
||||
|
||||
struct key_funcs * gnutls_lib_init( DWORD reason )
|
||||
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
|
||||
index 8df5ca8645f..e44436a73fb 100644
|
||||
index 2a88aec8362c..3ee3515f9de2 100644
|
||||
--- a/dlls/bcrypt/macos.c
|
||||
+++ b/dlls/bcrypt/macos.c
|
||||
@@ -284,7 +284,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_dsa_capi,
|
||||
@@ -299,7 +299,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_ecc,
|
||||
key_import_dsa_capi,
|
||||
- key_import_ecc
|
||||
+ key_import_ecc,
|
||||
key_import_ecc,
|
||||
- key_import_rsa
|
||||
+ key_import_rsa,
|
||||
+ NULL
|
||||
};
|
||||
|
||||
struct key_funcs * macos_lib_init( DWORD reason )
|
||||
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
|
||||
index 0ae4b5dad53..559f49ec78c 100644
|
||||
index 456727d04a96..6be406dee21f 100644
|
||||
--- a/dlls/bcrypt/tests/bcrypt.c
|
||||
+++ b/dlls/bcrypt/tests/bcrypt.c
|
||||
@@ -2102,7 +2102,7 @@ static void test_ECDH(void)
|
||||
@@ -2163,7 +2163,7 @@ static void test_ECDH(void)
|
||||
goto raw_secret_end;
|
||||
}
|
||||
|
||||
@@ -520,11 +522,11 @@ index 0ae4b5dad53..559f49ec78c 100644
|
||||
if (status != STATUS_SUCCESS)
|
||||
{
|
||||
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
|
||||
index c122df63f0b..fabb0ea40aa 100644
|
||||
index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
--- a/dlls/bcrypt/unixlib.c
|
||||
+++ b/dlls/bcrypt/unixlib.c
|
||||
@@ -129,6 +129,12 @@ static void CDECL key_asymmetric_destroy( struct key *key )
|
||||
FIXME( "not implemented\n" );
|
||||
@@ -142,6 +142,12 @@ static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
+static NTSTATUS CDECL key_compute_secret_ecc (unsigned char *privkey_in, struct key *pubkey_in, struct secret *secret)
|
||||
@@ -536,13 +538,11 @@ index c122df63f0b..fabb0ea40aa 100644
|
||||
static struct key_funcs key_funcs =
|
||||
{
|
||||
key_set_property,
|
||||
@@ -148,13 +154,15 @@ static struct key_funcs key_funcs =
|
||||
key_export_dsa_capi,
|
||||
key_export_ecc,
|
||||
@@ -164,12 +170,14 @@ static struct key_funcs key_funcs =
|
||||
key_import_dsa_capi,
|
||||
- key_import_ecc
|
||||
+ key_import_ecc,
|
||||
+ key_compute_secret_ecc
|
||||
key_import_ecc,
|
||||
key_import_rsa,
|
||||
+ key_compute_secret_ecc,
|
||||
};
|
||||
|
||||
NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
|
||||
@@ -553,7 +553,7 @@ index c122df63f0b..fabb0ea40aa 100644
|
||||
|
||||
if (reason == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
@@ -162,7 +170,9 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
@@ -177,7 +185,9 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
if (macos_funcs && macos_funcs->key_##name) \
|
||||
key_funcs.key_##name = macos_funcs->key_##name; \
|
||||
if (gnutls_funcs && gnutls_funcs->key_##name) \
|
||||
@@ -564,14 +564,14 @@ index c122df63f0b..fabb0ea40aa 100644
|
||||
|
||||
RESOLVE_FUNC(set_property)
|
||||
RESOLVE_FUNC(symmetric_init)
|
||||
@@ -181,6 +191,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
RESOLVE_FUNC(export_ecc)
|
||||
@@ -199,6 +209,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
RESOLVE_FUNC(import_dsa_capi)
|
||||
RESOLVE_FUNC(import_ecc)
|
||||
RESOLVE_FUNC(import_rsa)
|
||||
+ RESOLVE_FUNC(compute_secret_ecc)
|
||||
|
||||
#undef RESOLVE_FUNC
|
||||
|
||||
--
|
||||
2.28.0
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 01530fae68970b0c0af8811c5f6c5ea85c14372c Mon Sep 17 00:00:00 2001
|
||||
From 305131e59c071ca84e4447ab053b04bf4023fee8 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 7 Jan 2020 14:22:49 -0600
|
||||
Subject: [PATCH] bcrypt: Implement BCRYPT_KDF_HASH.
|
||||
@@ -11,10 +11,10 @@ Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
|
||||
2 files changed, 108 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 8dae41a2e2e..67be417aa61 100644
|
||||
index 0655c5dcfe81..70e914bd41f1 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1837,7 +1837,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
@@ -1993,7 +1993,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
if (!secret || secret->hdr.magic != MAGIC_SECRET) return STATUS_INVALID_HANDLE;
|
||||
if (!kdf) return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@@ -130,10 +130,10 @@ index 8dae41a2e2e..67be417aa61 100644
|
||||
ULONG n;
|
||||
ULONG secret_length = secret->len;
|
||||
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
|
||||
index 5701a0a30ce..d4ffb3fe69c 100644
|
||||
index 6be406dee21f..b13432523d15 100644
|
||||
--- a/dlls/bcrypt/tests/bcrypt.c
|
||||
+++ b/dlls/bcrypt/tests/bcrypt.c
|
||||
@@ -2132,7 +2132,7 @@ static void test_ECDH(void)
|
||||
@@ -2180,7 +2180,7 @@ static void test_ECDH(void)
|
||||
raw_secret_end:
|
||||
|
||||
status = pBCryptDeriveKey(secret, BCRYPT_KDF_HASH, &hash_params, NULL, 0, &size, 0);
|
||||
@@ -142,7 +142,7 @@ index 5701a0a30ce..d4ffb3fe69c 100644
|
||||
|
||||
if (status != STATUS_SUCCESS)
|
||||
{
|
||||
@@ -2666,7 +2666,6 @@ static void test_SecretAgreement(void)
|
||||
@@ -2716,7 +2716,6 @@ static void test_SecretAgreement(void)
|
||||
ok(status == STATUS_INVALID_PARAMETER, "got %08x\n", status);
|
||||
|
||||
status = pBCryptDeriveKey(secret, L"HASH", NULL, NULL, 0, &size, 0);
|
||||
@@ -151,5 +151,5 @@ index 5701a0a30ce..d4ffb3fe69c 100644
|
||||
|
||||
status = pBCryptDestroyHash(secret);
|
||||
--
|
||||
2.28.0
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
From 25b5e818272cf6fc52a8707c80b9ade3a5ca5df5 Mon Sep 17 00:00:00 2001
|
||||
From a207d7f2c77296798e047ed03d88d8a060139aff Mon Sep 17 00:00:00 2001
|
||||
From: Jason Edmeades <us@edmeades.me.uk>
|
||||
Date: Tue, 16 Jul 2019 13:49:18 +1000
|
||||
Subject: [PATCH 1/2] cmd: Support for launching programs based on file
|
||||
association
|
||||
Subject: [PATCH] cmd: Support for launching programs based on file association
|
||||
|
||||
cmd already handles exe, cmd, bat etc but if you run a file with another extension,
|
||||
then use the associations set in the registry (for example via ftype / assoc) to
|
||||
@@ -12,14 +11,14 @@ fred.msi for msiexec to be launched.
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=18154
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36646
|
||||
---
|
||||
programs/cmd/wcmdmain.c | 140 +++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 104 insertions(+), 36 deletions(-)
|
||||
programs/cmd/wcmdmain.c | 138 +++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 102 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
|
||||
index 29e498a48d..2a9e4c75ee 100644
|
||||
index cacb7ea7751..19a807c1624 100644
|
||||
--- a/programs/cmd/wcmdmain.c
|
||||
+++ b/programs/cmd/wcmdmain.c
|
||||
@@ -1142,8 +1142,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
@@ -1135,8 +1135,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
|
||||
/* 1. If extension supplied, see if that file exists */
|
||||
if (extensionsupplied) {
|
||||
@@ -31,7 +30,7 @@ index 29e498a48d..2a9e4c75ee 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1174,6 +1176,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
@@ -1166,6 +1168,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
}
|
||||
|
||||
if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
|
||||
@@ -39,17 +38,9 @@ index 29e498a48d..2a9e4c75ee 100644
|
||||
found = TRUE;
|
||||
thisExt = NULL;
|
||||
}
|
||||
@@ -1191,58 +1194,123 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
WCHAR *ext = wcsrchr( thisDir, '.' );
|
||||
static const WCHAR batExt[] = {'.','b','a','t','\0'};
|
||||
static const WCHAR cmdExt[] = {'.','c','m','d','\0'};
|
||||
+ static const WCHAR exeExt[] = {'.','e','x','e','\0'};
|
||||
+ static const WCHAR comExt[] = {'.','c','o','m','\0'};
|
||||
|
||||
WINE_TRACE("Found as %s\n", wine_dbgstr_w(thisDir));
|
||||
|
||||
@@ -1187,52 +1190,115 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
/* Special case BAT and CMD */
|
||||
if (ext && (!wcsicmp(ext, batExt) || !wcsicmp(ext, cmdExt))) {
|
||||
if (ext && (!wcsicmp(ext, L".bat") || !wcsicmp(ext, L".cmd"))) {
|
||||
BOOL oldinteractive = interactive;
|
||||
+ WINE_TRACE("Calling batch program\n");
|
||||
interactive = FALSE;
|
||||
@@ -95,7 +86,7 @@ index 29e498a48d..2a9e4c75ee 100644
|
||||
+
|
||||
+ /* If it is not a .com or .exe, try to launch through ShellExecuteExW
|
||||
+ which takes into account the association for the extension. */
|
||||
+ if (ext && (wcsicmp(ext, exeExt) && wcsicmp(ext, comExt))) {
|
||||
+ if (ext && (wcsicmp(ext, L".exe") && wcsicmp(ext, L".com"))) {
|
||||
+
|
||||
+ SHELLEXECUTEINFOW shexw;
|
||||
+ BOOL rc;
|
||||
@@ -199,5 +190,5 @@ index 29e498a48d..2a9e4c75ee 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
From b037d19858277d7dde0df6cdf4678a55517366af Mon Sep 17 00:00:00 2001
|
||||
From: Alex Henrie <alexhenrie24@gmail.com>
|
||||
Date: Tue, 22 Sep 2020 22:00:11 -0600
|
||||
Subject: [PATCH] winspool: Add sRGB color profile
|
||||
|
||||
"This profile is made available by the International Color Consortium,
|
||||
and may be copied, distributed, embedded, made, used, and sold without
|
||||
restriction. Altered versions of this profile shall have the original
|
||||
identification and copyright information removed and shall not be
|
||||
misrepresented as the original profile."
|
||||
|
||||
See http://www.color.org/srgbprofiles.xalter
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37396
|
||||
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
|
||||
---
|
||||
.../winspool.drv/sRGB_Color_Space_Profile.icm | Bin 0 -> 3024 bytes
|
||||
dlls/winspool.drv/winspool.rc | 3 ++
|
||||
dlls/winspool.drv/wspool.c | 38 ++++++++++++++++++
|
||||
dlls/winspool.drv/wspool.h | 2 +
|
||||
4 files changed, 43 insertions(+)
|
||||
create mode 100644 dlls/winspool.drv/sRGB_Color_Space_Profile.icm
|
||||
|
||||
diff --git a/dlls/winspool.drv/sRGB_Color_Space_Profile.icm b/dlls/winspool.drv/sRGB_Color_Space_Profile.icm
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..49afbfef10f22a1832590b68369d2f248ea553b9
|
||||
GIT binary patch
|
||||
literal 3024
|
||||
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
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/dlls/winspool.drv/winspool.rc b/dlls/winspool.drv/winspool.rc
|
||||
index 50772ce60bb..1b573be096e 100644
|
||||
--- a/dlls/winspool.drv/winspool.rc
|
||||
+++ b/dlls/winspool.drv/winspool.rc
|
||||
@@ -47,6 +47,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
/* @makedep: generic.ppd */
|
||||
1 PPDFILE generic.ppd
|
||||
|
||||
+/* @makedep: sRGB_Color_Space_Profile.icm */
|
||||
+IDR_SRGB_ICM RCDATA sRGB_Color_Space_Profile.icm
|
||||
+
|
||||
#define WINE_FILENAME_STR "winspool.drv"
|
||||
#define WINE_FILEDESCRIPTION_STR "Wine core printer driver"
|
||||
|
||||
diff --git a/dlls/winspool.drv/wspool.c b/dlls/winspool.drv/wspool.c
|
||||
index bbfb0fb0f42..baa7bfdb455 100644
|
||||
--- a/dlls/winspool.drv/wspool.c
|
||||
+++ b/dlls/winspool.drv/wspool.c
|
||||
@@ -104,6 +104,43 @@ BOOL load_backend(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+static void create_color_profiles(void)
|
||||
+{
|
||||
+ static const WCHAR color_dir[] = {'\\','s','p','o','o','l',
|
||||
+ '\\','d','r','i','v','e','r','s',
|
||||
+ '\\','c','o','l','o','r','\\',0};
|
||||
+ static const WCHAR srgb_icm[] = {'s','R','G','B',' ',
|
||||
+ 'C','o','l','o','r',' ',
|
||||
+ 'S','p','a','c','e',' ',
|
||||
+ 'P','r','o','f','i','l','e','.','i','c','m',0};
|
||||
+ WCHAR profile_path[MAX_PATH];
|
||||
+ HANDLE file;
|
||||
+ HRSRC res;
|
||||
+ DWORD size, written;
|
||||
+ char *data;
|
||||
+ BOOL ret;
|
||||
+
|
||||
+ GetSystemDirectoryW(profile_path, ARRAY_SIZE(profile_path));
|
||||
+ lstrcatW(profile_path, color_dir);
|
||||
+ lstrcatW(profile_path, srgb_icm);
|
||||
+
|
||||
+ file = CreateFileW(profile_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
+ if (file == INVALID_HANDLE_VALUE)
|
||||
+ return;
|
||||
+
|
||||
+ ret = ((res = FindResourceA(WINSPOOL_hInstance, MAKEINTRESOURCEA(IDR_SRGB_ICM), (const char *)RT_RCDATA)) &&
|
||||
+ (size = SizeofResource(WINSPOOL_hInstance, res)) &&
|
||||
+ (data = LoadResource(WINSPOOL_hInstance, res)) &&
|
||||
+ WriteFile(file, data, size, &written, NULL) &&
|
||||
+ written == size);
|
||||
+ CloseHandle(file);
|
||||
+ if (!ret)
|
||||
+ {
|
||||
+ ERR("Failed to create %s\n", wine_dbgstr_w(profile_path));
|
||||
+ DeleteFileW(profile_path);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/******************************************************************************
|
||||
* DllMain
|
||||
*
|
||||
@@ -118,6 +155,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD reason, LPVOID lpReserved)
|
||||
WINSPOOL_hInstance = hInstance;
|
||||
DisableThreadLibraryCalls(hInstance);
|
||||
WINSPOOL_LoadSystemPrinters();
|
||||
+ create_color_profiles();
|
||||
break;
|
||||
}
|
||||
case DLL_PROCESS_DETACH:
|
||||
diff --git a/dlls/winspool.drv/wspool.h b/dlls/winspool.drv/wspool.h
|
||||
index 06c28231330..a229b1ffe88 100644
|
||||
--- a/dlls/winspool.drv/wspool.h
|
||||
+++ b/dlls/winspool.drv/wspool.h
|
||||
@@ -33,5 +33,7 @@ extern void WINSPOOL_LoadSystemPrinters(void) DECLSPEC_HIDDEN;
|
||||
#define IDS_FILE_EXISTS 11
|
||||
#define IDS_CANNOT_OPEN 12
|
||||
|
||||
+#define IDR_SRGB_ICM 2
|
||||
+
|
||||
#define FILENAME_DIALOG 100
|
||||
#define EDITBOX 201
|
||||
--
|
||||
2.28.0
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Fixes: [37396] Add sRGB color profile.
|
||||
@@ -1,4 +1,4 @@
|
||||
From 39c92b48498d080c4d90e9b8d16c580dd72b1941 Mon Sep 17 00:00:00 2001
|
||||
From 645cdde83d5430c5096fcb4ec4191aab7e8063ce Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 5 Jul 2019 13:20:23 +0800
|
||||
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
|
||||
@@ -17,31 +17,31 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
create mode 100644 dlls/cryptext/tests/cryptext.c
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index f1de2c4052..ed79a35e0e 100755
|
||||
index 8567a9ca4ef..9b4ff8a2d7a 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -20063,6 +20063,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
@@ -20276,6 +20276,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
|
||||
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
|
||||
wine_fn_config_makefile dlls/cryptext enable_cryptext
|
||||
+wine_fn_config_makefile dlls/cryptext/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptnet enable_cryptnet
|
||||
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptui enable_cryptui
|
||||
wine_fn_config_makefile dlls/cryptsp enable_cryptsp
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a7c45ace73..e801c35c46 100644
|
||||
index 0549a9ee78a..b58b05d4dd7 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3049,6 +3049,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
@@ -3070,6 +3070,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptext)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/cryptext/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptnet)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptnet/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptui)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptsp)
|
||||
diff --git a/dlls/cryptext/Makefile.in b/dlls/cryptext/Makefile.in
|
||||
index 9c9f84cee8..0e817ffda6 100644
|
||||
index 9c9f84cee87..0e817ffda6c 100644
|
||||
--- a/dlls/cryptext/Makefile.in
|
||||
+++ b/dlls/cryptext/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -52,7 +52,7 @@ index 9c9f84cee8..0e817ffda6 100644
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
|
||||
diff --git a/dlls/cryptext/cryptext.spec b/dlls/cryptext/cryptext.spec
|
||||
index 0dba38e393..911ab2f4ba 100644
|
||||
index 0dba38e3934..911ab2f4ba4 100644
|
||||
--- a/dlls/cryptext/cryptext.spec
|
||||
+++ b/dlls/cryptext/cryptext.spec
|
||||
@@ -12,8 +12,8 @@
|
||||
@@ -67,7 +67,7 @@ index 0dba38e393..911ab2f4ba 100644
|
||||
@ stub CryptExtOpenCRLW
|
||||
@ stub CryptExtOpenCTL
|
||||
diff --git a/dlls/cryptext/cryptext_main.c b/dlls/cryptext/cryptext_main.c
|
||||
index f7c7bd1f55..2a381782d6 100644
|
||||
index f7c7bd1f554..2a381782d68 100644
|
||||
--- a/dlls/cryptext/cryptext_main.c
|
||||
+++ b/dlls/cryptext/cryptext_main.c
|
||||
@@ -22,10 +22,29 @@
|
||||
@@ -151,7 +151,7 @@ index f7c7bd1f55..2a381782d6 100644
|
||||
+}
|
||||
diff --git a/dlls/cryptext/tests/Makefile.in b/dlls/cryptext/tests/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000000..522fc60a4a
|
||||
index 00000000000..522fc60a4af
|
||||
--- /dev/null
|
||||
+++ b/dlls/cryptext/tests/Makefile.in
|
||||
@@ -0,0 +1,4 @@
|
||||
@@ -161,7 +161,7 @@ index 0000000000..522fc60a4a
|
||||
+ cryptext.c
|
||||
diff --git a/dlls/cryptext/tests/cryptext.c b/dlls/cryptext/tests/cryptext.c
|
||||
new file mode 100644
|
||||
index 0000000000..cc62a772b5
|
||||
index 00000000000..cc62a772b59
|
||||
--- /dev/null
|
||||
+++ b/dlls/cryptext/tests/cryptext.c
|
||||
@@ -0,0 +1,61 @@
|
||||
@@ -227,5 +227,5 @@ index 0000000000..cc62a772b5
|
||||
+ test_CryptExtOpenCER();
|
||||
+}
|
||||
--
|
||||
2.17.1
|
||||
2.20.1
|
||||
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
From 9ea60091ba885b5f63266374f49f0d63e2cf2767 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 16 Dec 2020 11:07:05 +1100
|
||||
Subject: [PATCH] d3drm: Support IDirect3D3 when creating device
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39346
|
||||
---
|
||||
dlls/d3drm/device.c | 26 ++++++++++++++++++++++++--
|
||||
1 file changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
|
||||
index 2e1b5f2d24f..fff272197bf 100644
|
||||
--- a/dlls/d3drm/device.c
|
||||
+++ b/dlls/d3drm/device.c
|
||||
@@ -124,7 +124,9 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
|
||||
IDirectDrawSurface *ds = NULL;
|
||||
IDirect3DDevice *device1 = NULL;
|
||||
IDirect3DDevice2 *device2 = NULL;
|
||||
+ IDirect3DDevice3 *device3 = NULL;
|
||||
IDirect3D2 *d3d2 = NULL;
|
||||
+ IDirect3D3 *d3d3 = NULL;
|
||||
DDSURFACEDESC desc, surface_desc;
|
||||
HRESULT hr;
|
||||
|
||||
@@ -171,19 +173,29 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
|
||||
|
||||
if (version == 1)
|
||||
hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirect3DRGBDevice, (void **)&device1);
|
||||
- else
|
||||
+ else if (version == 2)
|
||||
{
|
||||
IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D2, (void**)&d3d2);
|
||||
hr = IDirect3D2_CreateDevice(d3d2, &IID_IDirect3DRGBDevice, surface, &device2);
|
||||
IDirect3D2_Release(d3d2);
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ IDirectDrawSurface4 *surface4 = NULL;
|
||||
+
|
||||
+ IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface4, (void**)&surface4);
|
||||
+ IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D3, (void**)&d3d3);
|
||||
+ hr = IDirect3D3_CreateDevice(d3d3, &IID_IDirect3DRGBDevice, surface4, &device3, NULL);
|
||||
+ IDirectDrawSurface4_Release(surface4);
|
||||
+ IDirect3D3_Release(d3d3);
|
||||
+ }
|
||||
if (FAILED(hr))
|
||||
{
|
||||
IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds);
|
||||
return hr;
|
||||
}
|
||||
|
||||
- if (version != 1)
|
||||
+ if (version == 2)
|
||||
{
|
||||
hr = IDirect3DDevice2_QueryInterface(device2, &IID_IDirect3DDevice, (void**)&device1);
|
||||
IDirect3DDevice2_Release(device2);
|
||||
@@ -193,6 +205,16 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
|
||||
return hr;
|
||||
}
|
||||
}
|
||||
+ else if (version == 3)
|
||||
+ {
|
||||
+ hr = IDirect3DDevice3_QueryInterface(device3, &IID_IDirect3DDevice, (void**)&device1);
|
||||
+ IDirect3DDevice3_Release(device3);
|
||||
+ if (FAILED(hr))
|
||||
+ {
|
||||
+ IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds);
|
||||
+ return hr;
|
||||
+ }
|
||||
+ }
|
||||
device->device = device1;
|
||||
device->width = desc.dwWidth;
|
||||
device->height = desc.dwHeight;
|
||||
--
|
||||
2.29.2
|
||||
|
||||
1
patches/d3drm-IDirect3D3-support/definition
Normal file
1
patches/d3drm-IDirect3D3-support/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [39346] Support IDirect3D3 when creating device.
|
||||
@@ -1,56 +0,0 @@
|
||||
From bbc93f065045b7854f4446d9199c2c22c6251d3d Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sun, 30 Jul 2017 23:50:18 +0200
|
||||
Subject: [PATCH] d3dx9: Return D3DFMT_A8R8G8B8 in
|
||||
D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/surface.c | 18 ++++++++++++++++++
|
||||
dlls/d3dx9_36/tests/surface.c | 2 +-
|
||||
2 files changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
|
||||
index a2eca9cbdb..b670657125 100644
|
||||
--- a/dlls/d3dx9_36/surface.c
|
||||
+++ b/dlls/d3dx9_36/surface.c
|
||||
@@ -980,6 +980,24 @@ HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT datasize,
|
||||
}
|
||||
}
|
||||
|
||||
+ /* For 32 bpp BMP, windowscodecs.dll never returns a format with alpha while
|
||||
+ * d3dx9_xx.dll returns one if at least 1 pixel has a non zero alpha component */
|
||||
+ if (SUCCEEDED(hr) && (info->Format == D3DFMT_X8R8G8B8) && (info->ImageFileFormat == D3DXIFF_BMP)) {
|
||||
+ DWORD size = sizeof(DWORD) * info->Width * info->Height;
|
||||
+ BYTE *buffer = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
+ hr = IWICBitmapFrameDecode_CopyPixels(frame, NULL, sizeof(DWORD) * info->Width, size, buffer);
|
||||
+ if (SUCCEEDED(hr)) {
|
||||
+ DWORD i;
|
||||
+ for (i = 0; i < info->Width * info->Height; i++) {
|
||||
+ if (buffer[i*4+3]) {
|
||||
+ info->Format = D3DFMT_A8R8G8B8;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ HeapFree(GetProcessHeap(), 0, buffer);
|
||||
+ }
|
||||
+
|
||||
if (frame)
|
||||
IWICBitmapFrameDecode_Release(frame);
|
||||
|
||||
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
|
||||
index 04ce57fa4f..db0c9c7291 100644
|
||||
--- a/dlls/d3dx9_36/tests/surface.c
|
||||
+++ b/dlls/d3dx9_36/tests/surface.c
|
||||
@@ -616,7 +616,7 @@ static void test_D3DXGetImageInfo(void)
|
||||
ok(info.Format == D3DFMT_X8R8G8B8, "Got unexpected format %u.\n", info.Format);
|
||||
hr = D3DXGetImageInfoFromFileInMemory(bmp_32bpp_argb, sizeof(bmp_32bpp_argb), &info);
|
||||
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
|
||||
- todo_wine ok(info.Format == D3DFMT_A8R8G8B8, "Got unexpected format %u.\n", info.Format);
|
||||
+ ok(info.Format == D3DFMT_A8R8G8B8, "Got unexpected format %u.\n", info.Format);
|
||||
|
||||
/* Grayscale PNG */
|
||||
hr = D3DXGetImageInfoFromFileInMemory(png_grayscale, sizeof(png_grayscale), &info);
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Fixes: [48563] Runaway: A Twist of Fate renders its cursor incorrectly
|
||||
25
patches/dsound-EAX/0022-dsound-Enable-EAX-by-default.patch
Normal file
25
patches/dsound-EAX/0022-dsound-Enable-EAX-by-default.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
From 25450e6cf073bde4f26fec40c59224087017f332 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 1 Jan 2021 13:32:48 +1100
|
||||
Subject: [PATCH] dsound: Enable EAX by default
|
||||
|
||||
---
|
||||
dlls/dsound/dsound_main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
|
||||
index e12c2208199..bda9a446a08 100644
|
||||
--- a/dlls/dsound/dsound_main.c
|
||||
+++ b/dlls/dsound/dsound_main.c
|
||||
@@ -93,7 +93,7 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
|
||||
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
|
||||
int ds_hel_buflen = 32768 * 2;
|
||||
int ds_hq_buffers_max = 4;
|
||||
-BOOL ds_eax_enabled = FALSE;
|
||||
+BOOL ds_eax_enabled = TRUE;
|
||||
static HINSTANCE instance;
|
||||
|
||||
#define IS_OPTION_TRUE(ch) \
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
From f8f6f53f2bb3d138717ac7a82c78010bce874d4a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 25 Jan 2021 19:14:32 +1100
|
||||
Subject: [PATCH] dsound: Fake success for EAX Set Buffer/ListenerProperties
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50551
|
||||
---
|
||||
dlls/dsound/buffer.c | 3 ++-
|
||||
dlls/dsound/eax.c | 8 ++++----
|
||||
2 files changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
|
||||
index 6393656c9fa..24ff1a6198c 100644
|
||||
--- a/dlls/dsound/buffer.c
|
||||
+++ b/dlls/dsound/buffer.c
|
||||
@@ -1299,7 +1299,8 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid
|
||||
|
||||
TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
|
||||
|
||||
- if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet))
|
||||
+ if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet) ||
|
||||
+ IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet))
|
||||
return EAX_Set(This, guidPropSet, dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
|
||||
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 6a6d22bc031..b3f48cdb5bd 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -1082,11 +1082,11 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
||||
|
||||
return S_OK;
|
||||
} else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
|
||||
- FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
|
||||
- return E_PROP_ID_UNSUPPORTED;
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d - Faking Success\n", dwPropID);
|
||||
+ return S_OK;
|
||||
} else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
|
||||
- FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
|
||||
- return E_PROP_ID_UNSUPPORTED;
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d - Faking Success\n", dwPropID);
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
FIXME("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
Fixes: Software support for Environmental Audio Extensions (EAX)
|
||||
Fixes: [42886] Mushroom Wars - Has no sounds.
|
||||
Depends: dsound-Fast_Mixer
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
From b9eb0aeed5bc09d8a54c383c9d5149cacf36f1c3 Mon Sep 17 00:00:00 2001
|
||||
From: Louis Lenders <xerox.xerox2000x@gmail.com>
|
||||
Date: Wed, 5 Dec 2018 13:18:26 +0100
|
||||
Subject: [PATCH] dwmapi: Add tests for DwmGetTransportAttributes().
|
||||
|
||||
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
|
||||
---
|
||||
dlls/dwmapi/tests/dwmapi.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/dlls/dwmapi/tests/dwmapi.c b/dlls/dwmapi/tests/dwmapi.c
|
||||
index 1904e283bba..d79861f53ed 100644
|
||||
--- a/dlls/dwmapi/tests/dwmapi.c
|
||||
+++ b/dlls/dwmapi/tests/dwmapi.c
|
||||
@@ -33,7 +33,18 @@ static void test_DwmIsCompositionEnabled(void)
|
||||
ok(enabled == TRUE || enabled == FALSE, "Got unexpected %#x.\n", enabled);
|
||||
}
|
||||
|
||||
+static void test_dwm_get_transport_attributes(void)
|
||||
+{
|
||||
+ BOOL isremoting, isconnected;
|
||||
+ DWORD generation;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = DwmGetTransportAttributes(&isremoting, &isconnected, &generation);
|
||||
+ ok(hr == S_OK || hr == DWM_E_COMPOSITIONDISABLED, "Got unexpected %#x.\n", hr);
|
||||
+}
|
||||
+
|
||||
START_TEST(dwmapi)
|
||||
{
|
||||
test_DwmIsCompositionEnabled();
|
||||
+ test_dwm_get_transport_attributes();
|
||||
}
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Tests for bug 31350.
|
||||
@@ -1,4 +1,4 @@
|
||||
From 6242434571910c686887b51cbbee8f6cb9b83389 Mon Sep 17 00:00:00 2001
|
||||
From 73b91ff2ff705bf35d9603a6446b424af90fb199 Mon Sep 17 00:00:00 2001
|
||||
From: Lucian Poston <lucianposton@pm.me>
|
||||
Date: Wed, 23 May 2018 00:01:42 -0700
|
||||
Subject: [PATCH] dwrite: Test GetMetrics with custom fontcollection
|
||||
@@ -9,10 +9,10 @@ Signed-off-by: Lucian Poston <lucianposton@pm.me>
|
||||
1 file changed, 279 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
|
||||
index d89ccc9d995..bf003376f86 100644
|
||||
index 4cba57764fd..26f4693e862 100644
|
||||
--- a/dlls/dwrite/tests/layout.c
|
||||
+++ b/dlls/dwrite/tests/layout.c
|
||||
@@ -3297,7 +3297,7 @@ todo_wine
|
||||
@@ -3339,7 +3339,7 @@ todo_wine
|
||||
DWRITE_FONT_STRETCH_NORMAL, 10.0, L"en-us", &format);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
@@ -21,7 +21,7 @@ index d89ccc9d995..bf003376f86 100644
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
count = 0;
|
||||
@@ -4480,6 +4480,7 @@ static void test_SetWordWrapping(void)
|
||||
@@ -4522,6 +4522,7 @@ static void test_SetWordWrapping(void)
|
||||
/* Collection dedicated to fallback testing */
|
||||
|
||||
static const WCHAR g_blahfontW[] = {'B','l','a','h',0};
|
||||
@@ -29,7 +29,7 @@ index d89ccc9d995..bf003376f86 100644
|
||||
static HRESULT WINAPI fontcollection_QI(IDWriteFontCollection *iface, REFIID riid, void **obj)
|
||||
{
|
||||
if (IsEqualIID(riid, &IID_IDWriteFontCollection) || IsEqualIID(riid, &IID_IUnknown)) {
|
||||
@@ -4541,6 +4542,9 @@ static HRESULT WINAPI fontcollection_FindFamilyName(IDWriteFontCollection *iface
|
||||
@@ -4583,6 +4584,9 @@ static HRESULT WINAPI fontcollection_FindFamilyName(IDWriteFontCollection *iface
|
||||
*index = 123456;
|
||||
*exists = TRUE;
|
||||
return S_OK;
|
||||
@@ -39,8 +39,8 @@ index d89ccc9d995..bf003376f86 100644
|
||||
}
|
||||
ok(0, "unexpected call, name %s\n", wine_dbgstr_w(name));
|
||||
return E_NOTIMPL;
|
||||
@@ -5781,6 +5785,279 @@ todo_wine {
|
||||
IDWriteFactory_Release(factory);
|
||||
@@ -5992,6 +5996,279 @@ if (SUCCEEDED(hr))
|
||||
IDWriteFactory6_Release(factory);
|
||||
}
|
||||
|
||||
+static void test_GetMetrics_with_custom_fontcollection(void)
|
||||
@@ -319,7 +319,7 @@ index d89ccc9d995..bf003376f86 100644
|
||||
START_TEST(layout)
|
||||
{
|
||||
IDWriteFactory *factory;
|
||||
@@ -5814,6 +6091,7 @@ START_TEST(layout)
|
||||
@@ -6025,6 +6302,7 @@ START_TEST(layout)
|
||||
test_SetFontStretch();
|
||||
test_SetStrikethrough();
|
||||
test_GetMetrics();
|
||||
@@ -328,5 +328,5 @@ index d89ccc9d995..bf003376f86 100644
|
||||
test_SetDrawingEffect();
|
||||
test_GetLineMetrics();
|
||||
--
|
||||
2.17.1
|
||||
2.29.2
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user