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
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
539ecd2ff3 | ||
|
f0719cee76 | ||
|
8647380744 | ||
|
2f728605b0 | ||
|
3d32dd0626 | ||
|
aa58789a01 | ||
|
1e792e2d3b | ||
|
d1a232c3e2 | ||
|
f74e9e5a2b | ||
|
356e684ae6 | ||
|
1df82a7bfc | ||
|
5d79afb196 | ||
|
9f8991fc7f | ||
|
eb80c9d640 | ||
|
5d30a5655f | ||
|
8fb1779241 | ||
|
e3a9010df6 | ||
|
62db3313d5 | ||
|
cd68f05ab3 | ||
|
e853aaffe3 | ||
|
849ac07bce | ||
|
8aeeecdfcb | ||
|
d7aa469bc1 | ||
|
6c49bc4729 | ||
|
0f3bd44e32 | ||
|
7f7bf3b682 | ||
|
191f951992 | ||
|
6efbf2e5b5 | ||
|
a853455a23 | ||
|
7b49214435 | ||
|
8d59d7a990 | ||
|
399383a95d | ||
|
812c0051c8 | ||
|
1e2788d87d | ||
|
76a8aff953 | ||
|
508669b7f7 | ||
|
74300a69fb | ||
|
d29bc4b9e7 | ||
|
348ecab0e4 | ||
|
fd7be1f70c | ||
|
8d8ed4b7d9 |
@@ -1,31 +1,18 @@
|
||||
From 40630c14377561e90a4be405d2124338002a88f7 Mon Sep 17 00:00:00 2001
|
||||
From 81a36b530261731d6020e09770237ae5bf58166d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 2 May 2014 20:46:19 +0200
|
||||
Subject: [PATCH] user32: Decrease minimum SetTimer interval to 5 ms. (try 2)
|
||||
|
||||
---
|
||||
dlls/user32/message.c | 2 +-
|
||||
dlls/user32/tests/msg.c | 2 ++
|
||||
dlls/win32u/message.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index 1336865112a..cbe9920384f 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -4496,7 +4496,7 @@ UINT_PTR WINAPI SetCoalescableTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMER
|
||||
|
||||
if (proc) winproc = WINPROC_AllocProc( (WNDPROC)proc, FALSE );
|
||||
|
||||
- timeout = min( max( USER_TIMER_MINIMUM, timeout ), USER_TIMER_MAXIMUM );
|
||||
+ timeout = min( max( 5, timeout ), USER_TIMER_MAXIMUM );
|
||||
|
||||
SERVER_START_REQ( set_win_timer )
|
||||
{
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index c0ba5834cf9..a6bc158e8a7 100644
|
||||
index 4519da6962d..304a3b87f46 100644
|
||||
--- a/dlls/user32/tests/msg.c
|
||||
+++ b/dlls/user32/tests/msg.c
|
||||
@@ -10282,6 +10282,7 @@ static void test_timers(void)
|
||||
@@ -10709,6 +10709,7 @@ static void test_timers(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
@@ -33,7 +20,7 @@ index c0ba5834cf9..a6bc158e8a7 100644
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|
||||
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w2k3, win8 */,
|
||||
@@ -10352,6 +10353,7 @@ static void test_timers_no_wnd(void)
|
||||
@@ -10779,6 +10780,7 @@ static void test_timers_no_wnd(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, NULL, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
@@ -41,6 +28,19 @@ index c0ba5834cf9..a6bc158e8a7 100644
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|
||||
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w1064v1809 */,
|
||||
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
|
||||
index d00178e6aa4..513150a3d61 100644
|
||||
--- a/dlls/win32u/message.c
|
||||
+++ b/dlls/win32u/message.c
|
||||
@@ -170,7 +170,7 @@ UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIME
|
||||
|
||||
if (proc) winproc = alloc_winproc( (WNDPROC)proc, TRUE );
|
||||
|
||||
- timeout = min( max( USER_TIMER_MINIMUM, timeout ), USER_TIMER_MAXIMUM );
|
||||
+ timeout = min( max( 5, timeout ), USER_TIMER_MAXIMUM );
|
||||
|
||||
SERVER_START_REQ( set_win_timer )
|
||||
{
|
||||
--
|
||||
2.17.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2af1ec49d958424e2b78f52ae3e3daca1d562b35 Mon Sep 17 00:00:00 2001
|
||||
From da59fcb896bc204ea0ea1d866eeddef0c9b962c4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 28 Mar 2015 08:18:10 +0100
|
||||
Subject: [PATCH] dsound: Apply filters before sound is multiplied to speakers.
|
||||
@@ -11,7 +11,7 @@ Based on a patch by Mark Harmstone.
|
||||
3 files changed, 80 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
|
||||
index 3085d86e5b5..91fa94b943e 100644
|
||||
index 346cc4ceca3..e869c4dd251 100644
|
||||
--- a/dlls/dsound/dsound.c
|
||||
+++ b/dlls/dsound/dsound.c
|
||||
@@ -234,6 +234,8 @@ static ULONG DirectSoundDevice_Release(DirectSoundDevice * device)
|
||||
@@ -24,7 +24,7 @@ index 3085d86e5b5..91fa94b943e 100644
|
||||
HeapFree(GetProcessHeap(), 0, device->cp_buffer);
|
||||
HeapFree(GetProcessHeap(), 0, device->buffer);
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index 2408f80ba82..2e23f222b03 100644
|
||||
index f89588de4d9..d4e74ed0e82 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -89,8 +89,8 @@ struct DirectSoundDevice
|
||||
@@ -39,7 +39,7 @@ index 2408f80ba82..2e23f222b03 100644
|
||||
DSVOLUMEPAN volpan;
|
||||
|
||||
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
|
||||
index 1877d61cbf0..13bff1b9ae7 100644
|
||||
index 50816b1a582..ddab45893ac 100644
|
||||
--- a/dlls/dsound/mixer.c
|
||||
+++ b/dlls/dsound/mixer.c
|
||||
@@ -283,10 +283,9 @@ static inline float get_current_sample(const IDirectSoundBufferImpl *dsb,
|
||||
@@ -54,7 +54,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
UINT committed_samples = 0;
|
||||
DWORD channel, i;
|
||||
|
||||
@@ -302,17 +301,16 @@ static UINT cp_fields_noresample(IDirectSoundBufferImpl *dsb, UINT count)
|
||||
@@ -305,17 +304,16 @@ static UINT cp_fields_noresample(IDirectSoundBufferImpl *dsb, UINT count)
|
||||
|
||||
for (; i < count; i++)
|
||||
for (channel = 0; channel < dsb->mix_channels; channel++)
|
||||
@@ -75,7 +75,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
UINT channels = dsb->mix_channels;
|
||||
|
||||
LONG64 freqAcc_start = *freqAccNum;
|
||||
@@ -340,7 +338,7 @@ static UINT cp_fields_resample_lq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
@@ -343,7 +341,7 @@ static UINT cp_fields_resample_lq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
float s1 = get_current_sample(dsb, dsb->buffer->memory, dsb->buflen, idx, channel);
|
||||
float s2 = get_current_sample(dsb, dsb->buffer->memory, dsb->buflen, idx + istride, channel);
|
||||
float result = s1 * cur_freqAcc2 + s2 * cur_freqAcc;
|
||||
@@ -84,7 +84,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,11 +346,11 @@ static UINT cp_fields_resample_lq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
@@ -351,11 +349,11 @@ static UINT cp_fields_resample_lq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
return max_ipos;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
UINT committed_samples = 0;
|
||||
|
||||
LONG64 freqAcc_start = *freqAccNum;
|
||||
@@ -422,7 +420,7 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
@@ -430,23 +428,24 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
float* cache = &intermediate[channel * required_input + ipos];
|
||||
for (j = 0; j < fir_used; j++)
|
||||
sum += fir_copy[j] * cache[j];
|
||||
@@ -107,7 +107,6 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,16 +429,17 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
return max_ipos;
|
||||
}
|
||||
|
||||
@@ -129,7 +128,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
|
||||
ipos = dsb->sec_mixpos + adv * dsb->pwfx->nBlockAlign;
|
||||
if (ipos >= dsb->buflen) {
|
||||
@@ -476,6 +475,21 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
@@ -482,6 +481,21 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
return buflen + ptr1 - ptr2;
|
||||
}
|
||||
}
|
||||
@@ -151,7 +150,7 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
/**
|
||||
* Mix at most the given amount of data into the allocated temporary buffer
|
||||
* of the given secondary buffer, starting from the dsb's first currently
|
||||
@@ -491,34 +505,63 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
@@ -497,34 +511,63 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
*/
|
||||
static void DSOUND_MixToTemporary(IDirectSoundBufferImpl *dsb, DWORD frames)
|
||||
{
|
||||
@@ -211,9 +210,9 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
+ hr = IMediaObjectInPlace_Process(dsb->filters[i].inplace, frames * sizeof(float) * dsb->mix_channels,
|
||||
+ (BYTE *)dsb->device->dsp_buffer, 0, DMO_INPLACE_NORMAL);
|
||||
+ if (FAILED(hr))
|
||||
+ WARN("IMediaObjectInPlace_Process failed for filter %u\n", i);
|
||||
+ WARN("IMediaObjectInPlace_Process failed for filter %lu\n", i);
|
||||
+ } else
|
||||
+ WARN("filter %u has no inplace object - unsupported\n", i);
|
||||
+ WARN("filter %lu has no inplace object - unsupported\n", i);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
@@ -235,5 +234,5 @@ index 1877d61cbf0..13bff1b9ae7 100644
|
||||
|
||||
static void DSOUND_MixerVol(const IDirectSoundBufferImpl *dsb, INT frames)
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From ee7fe13f2c520e1360e46f825790539b5bc2be3b Mon Sep 17 00:00:00 2001
|
||||
From c2c33dff38e55d87582d8d6526b3d321ba577570 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Harmstone <mark@harmstone.com>
|
||||
Date: Sun, 22 Mar 2015 13:58:53 +0000
|
||||
Subject: [PATCH] dsound: Add EAX propset stubs.
|
||||
@@ -68,7 +68,7 @@ index 304708c26da..c0e254f7a6e 100644
|
||||
void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
new file mode 100644
|
||||
index 00000000000..c30c7e1a51a
|
||||
index 00000000000..c1264f977b6
|
||||
--- /dev/null
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -0,0 +1,54 @@
|
||||
@@ -109,7 +109,7 @@ index 00000000000..c30c7e1a51a
|
||||
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
||||
+ ULONG cbPropData, ULONG *pcbReturned)
|
||||
+{
|
||||
+ TRACE("(buf=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n",
|
||||
+ TRACE("(buf=%p,guidPropSet=%s,dwPropID=%lu,pInstanceData=%p,cbInstanceData=%lu,pPropData=%p,cbPropData=%lu,pcbReturned=%p)\n",
|
||||
+ buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData, pcbReturned);
|
||||
+
|
||||
+ *pcbReturned = 0;
|
||||
@@ -121,11 +121,11 @@ index 00000000000..c30c7e1a51a
|
||||
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
||||
+ ULONG cbPropData)
|
||||
+{
|
||||
+ TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
+ TRACE("(%p,%s,%lu,%p,%lu,%p,%lu)\n",
|
||||
+ buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
|
||||
+
|
||||
+ return E_PROP_ID_UNSUPPORTED;
|
||||
+}
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,16 +1,16 @@
|
||||
From fe1de4d0856517f1ce59a3a5eb15a13f6ce4a9e6 Mon Sep 17 00:00:00 2001
|
||||
From d60cc4b9f0a45a69813d0faf172a04c32aff3990 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Harmstone <mark@harmstone.com>
|
||||
Date: Sun, 22 Mar 2015 14:22:02 +0000
|
||||
Subject: dsound: Support getting and setting EAX properties.
|
||||
Subject: [PATCH] dsound: Support getting and setting EAX properties.
|
||||
|
||||
---
|
||||
dlls/dsound/dsound_eax.h | 8 +++
|
||||
dlls/dsound/dsound_eax.h | 8 ++
|
||||
dlls/dsound/dsound_private.h | 2 +
|
||||
dlls/dsound/eax.c | 167 +++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/dsound/eax.c | 167 +++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 177 insertions(+)
|
||||
|
||||
diff --git a/dlls/dsound/dsound_eax.h b/dlls/dsound/dsound_eax.h
|
||||
index 06d961e..c90d82d 100644
|
||||
index 06d961e006e..c90d82d9a3f 100644
|
||||
--- a/dlls/dsound/dsound_eax.h
|
||||
+++ b/dlls/dsound/dsound_eax.h
|
||||
@@ -111,6 +111,14 @@ typedef struct {
|
||||
@@ -29,10 +29,10 @@ index 06d961e..c90d82d 100644
|
||||
}
|
||||
#endif
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index e4495b2..c16f770 100644
|
||||
index c0e254f7a6e..461fbd4fdc8 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -99,6 +99,8 @@ struct DirectSoundDevice
|
||||
@@ -97,6 +97,8 @@ struct DirectSoundDevice
|
||||
|
||||
normfunc normfunction;
|
||||
|
||||
@@ -42,7 +42,7 @@ index e4495b2..c16f770 100644
|
||||
DS3DLISTENER ds3dl;
|
||||
BOOL ds3dl_need_recalc;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 57d88e7..cdd03be 100644
|
||||
index c1653a200c5..13471aec3a9 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -92,6 +92,22 @@ static const EFXEAXREVERBPROPERTIES efx_presets[] = {
|
||||
@@ -145,7 +145,7 @@ index 57d88e7..cdd03be 100644
|
||||
{
|
||||
+ EAX_REVERBPROPERTIES *props;
|
||||
+
|
||||
TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
TRACE("(%p,%s,%lu,%p,%lu,%p,%lu)\n",
|
||||
buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
|
||||
|
||||
+ if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet)) {
|
||||
@@ -236,5 +236,5 @@ index 57d88e7..cdd03be 100644
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
--
|
||||
2.3.3
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From af21be49d511224d7299ef3d21f08ebfee66f3a5 Mon Sep 17 00:00:00 2001
|
||||
From 38fec88e8dee99a012773648289b228245001c6c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 5 Apr 2015 19:13:18 +0200
|
||||
Subject: [PATCH] dsound: Allow disabling of EAX support in the registry.
|
||||
@@ -97,7 +97,7 @@ index 0bca36b2540..7d488ab1e45 100644
|
||||
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
||||
ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index ef802b95a7d..570207709f0 100644
|
||||
index 2244565897b..3e15ac59480 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -809,6 +809,28 @@ void free_eax_buffer(IDirectSoundBufferImpl *dsb)
|
||||
@@ -106,7 +106,7 @@ index ef802b95a7d..570207709f0 100644
|
||||
|
||||
+BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSupport)
|
||||
+{
|
||||
+ TRACE("(%s,%d,%p)\n", debugstr_guid(guidPropSet), dwPropID, pTypeSupport);
|
||||
+ TRACE("(%s,%ld,%p)\n", debugstr_guid(guidPropSet), dwPropID, pTypeSupport);
|
||||
+
|
||||
+ if (!ds_eax_enabled)
|
||||
+ return FALSE;
|
||||
@@ -130,7 +130,7 @@ index ef802b95a7d..570207709f0 100644
|
||||
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
||||
ULONG cbPropData, ULONG *pcbReturned)
|
||||
@@ -816,6 +838,9 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
||||
TRACE("(buf=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n",
|
||||
TRACE("(buf=%p,guidPropSet=%s,dwPropID=%lu,pInstanceData=%p,cbInstanceData=%lu,pPropData=%p,cbPropData=%lu,pcbReturned=%p)\n",
|
||||
buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData, pcbReturned);
|
||||
|
||||
+ if (!ds_eax_enabled)
|
||||
@@ -140,7 +140,7 @@ index ef802b95a7d..570207709f0 100644
|
||||
|
||||
if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet)) {
|
||||
@@ -922,6 +947,9 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
||||
TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
TRACE("(%p,%s,%lu,%p,%lu,%p,%lu)\n",
|
||||
buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
|
||||
|
||||
+ if (!ds_eax_enabled)
|
||||
@@ -150,5 +150,5 @@ index ef802b95a7d..570207709f0 100644
|
||||
buf->device->eax.using_eax = TRUE;
|
||||
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
From f2c56d857f9e30ba7d15e31c67e20c0698b3df9f Mon Sep 17 00:00:00 2001
|
||||
From 3e15d6c0b64a1abe347ec4ab37fe260ee058850b Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Mon, 5 Oct 2015 21:56:15 -0600
|
||||
Subject: dsound: Add stub support for DSPROPSETID_EAX20_ListenerProperties.
|
||||
Subject: [PATCH] dsound: Add stub support for
|
||||
DSPROPSETID_EAX20_ListenerProperties.
|
||||
|
||||
---
|
||||
dlls/dsound/dsound_eax.h | 21 +++++++++++++++++++++
|
||||
@@ -9,7 +10,7 @@ Subject: dsound: Add stub support for DSPROPSETID_EAX20_ListenerProperties.
|
||||
2 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/dlls/dsound/dsound_eax.h b/dlls/dsound/dsound_eax.h
|
||||
index a555a75..21450e8 100644
|
||||
index a555a75e458..fe85179bf01 100644
|
||||
--- a/dlls/dsound/dsound_eax.h
|
||||
+++ b/dlls/dsound/dsound_eax.h
|
||||
@@ -28,6 +28,7 @@ extern "C" {
|
||||
@@ -48,7 +49,7 @@ index a555a75..21450e8 100644
|
||||
|
||||
#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY (0.3f)
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 857f924..297d444 100644
|
||||
index 3e15ac59480..ed8dd204759 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -826,6 +826,11 @@ BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSu
|
||||
@@ -68,7 +69,7 @@ index 857f924..297d444 100644
|
||||
|
||||
return S_OK;
|
||||
+ } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld\n", dwPropID);
|
||||
+ return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
|
||||
@@ -78,11 +79,11 @@ index 857f924..297d444 100644
|
||||
|
||||
return S_OK;
|
||||
+ } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld\n", dwPropID);
|
||||
+ return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
--
|
||||
2.6.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
From 6147f0b2fe272cdce45785de1efcd323084d5ac7 Mon Sep 17 00:00:00 2001
|
||||
From 84bf274c38399dad825c21a9a165730f07f6904c Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Wed, 7 Oct 2015 19:31:53 -0600
|
||||
Subject: dsound: Add stub support for DSPROPSETID_EAX20_BufferProperties.
|
||||
Subject: [PATCH] dsound: Add stub support for
|
||||
DSPROPSETID_EAX20_BufferProperties.
|
||||
|
||||
---
|
||||
dlls/dsound/dsound_eax.h | 20 ++++++++++++++++++++
|
||||
@@ -9,7 +10,7 @@ Subject: dsound: Add stub support for DSPROPSETID_EAX20_BufferProperties.
|
||||
2 files changed, 36 insertions(+)
|
||||
|
||||
diff --git a/dlls/dsound/dsound_eax.h b/dlls/dsound/dsound_eax.h
|
||||
index fe85179..09563a0 100644
|
||||
index fe85179bf01..09563a0d615 100644
|
||||
--- a/dlls/dsound/dsound_eax.h
|
||||
+++ b/dlls/dsound/dsound_eax.h
|
||||
@@ -29,6 +29,7 @@ extern "C" {
|
||||
@@ -47,7 +48,7 @@ index fe85179..09563a0 100644
|
||||
|
||||
#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY (0.3f)
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 297d444..12c290a 100644
|
||||
index ed8dd204759..9237aa055e0 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -831,8 +831,14 @@ BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSu
|
||||
@@ -61,37 +62,37 @@ index 297d444..12c290a 100644
|
||||
+ }
|
||||
}
|
||||
|
||||
+ FIXME("(%s,%d,%p)\n", debugstr_guid(guidPropSet), dwPropID, pTypeSupport);
|
||||
+ FIXME("(%s,%ld,%p)\n", debugstr_guid(guidPropSet), dwPropID, pTypeSupport);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -941,8 +947,13 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
||||
} else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
|
||||
FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
|
||||
FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld\n", dwPropID);
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
+ } else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %ld\n", dwPropID);
|
||||
+ return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
|
||||
+ FIXME("(buf=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n",
|
||||
+ FIXME("(buf=%p,guidPropSet=%s,dwPropID=%ld,pInstanceData=%p,cbInstanceData=%ld,pPropData=%p,cbPropData=%ld,pcbReturned=%p)\n",
|
||||
+ buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData, pcbReturned);
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
|
||||
@@ -1073,7 +1084,12 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
||||
} else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
|
||||
FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
|
||||
FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld\n", dwPropID);
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
+ } else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %ld\n", dwPropID);
|
||||
+ return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
|
||||
+ FIXME("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
+ FIXME("(%p,%s,%ld,%p,%ld,%p,%ld)\n",
|
||||
+ buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
}
|
||||
--
|
||||
2.6.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b332a35d8382c6fc77ba663c5db98a6374518bfe Mon Sep 17 00:00:00 2001
|
||||
From cb7356ad69c333277313e305cee4dc17b765a184 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
|
||||
@@ -24,25 +24,25 @@ index 39ce9101266..ba93989f372 100644
|
||||
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 6a6d22bc031..b3f48cdb5bd 100644
|
||||
index 9237aa055e0..7034b5fca07 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);
|
||||
- FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld\n", dwPropID);
|
||||
- return E_PROP_ID_UNSUPPORTED;
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d - Faking Success\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %ld - Faking Success\n", dwPropID);
|
||||
+ return S_OK;
|
||||
} else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
|
||||
- FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
|
||||
- FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %ld\n", dwPropID);
|
||||
- return E_PROP_ID_UNSUPPORTED;
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d - Faking Success\n", dwPropID);
|
||||
+ FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %ld - Faking Success\n", dwPropID);
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
FIXME("(%p,%s,%d,%p,%d,%p,%d)\n",
|
||||
FIXME("(%p,%s,%ld,%p,%ld,%p,%ld)\n",
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -29,97 +29,97 @@ index b158ac905fd..ad6ab1adc96 100644
|
||||
CloseHandle( handle );
|
||||
+
|
||||
+ handle = CreateSemaphoreA( NULL, 0, 5, NULL );
|
||||
+ ok(!!handle, "CreateSemaphore failed: %u\n", GetLastError());
|
||||
+ ok(!!handle, "CreateSemaphore failed: %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle, 1, &prev );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 0, "got prev %d\n", prev);
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 0, "got prev %ld\n", prev);
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle, 1, &prev );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 1, "got prev %d\n", prev);
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 1, "got prev %ld\n", prev);
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle, 5, &prev );
|
||||
+ ok(!ret, "got %d\n", ret);
|
||||
+ ok(GetLastError() == ERROR_TOO_MANY_POSTS, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 1, "got prev %d\n", prev);
|
||||
+ ok(!ret, "got %ld\n", ret);
|
||||
+ ok(GetLastError() == ERROR_TOO_MANY_POSTS, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 1, "got prev %ld\n", prev);
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle, 2, &prev );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 2, "got prev %d\n", prev);
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 2, "got prev %ld\n", prev);
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle, 1, &prev );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 4, "got prev %d\n", prev);
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 4, "got prev %ld\n", prev);
|
||||
+
|
||||
+ for (i = 0; i < 5; i++)
|
||||
+ {
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+ }
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ handle2 = CreateSemaphoreA( NULL, 3, 5, NULL );
|
||||
+ ok(!!handle2, "CreateSemaphore failed: %u\n", GetLastError());
|
||||
+ ok(!!handle2, "CreateSemaphore failed: %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseSemaphore( handle2, 1, &prev );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(prev == 3, "got prev %d\n", prev);
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ ok(prev == 3, "got prev %ld\n", prev);
|
||||
+
|
||||
+ for (i = 0; i < 4; i++)
|
||||
+ {
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+ }
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ handles[0] = handle;
|
||||
+ handles[1] = handle2;
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ReleaseSemaphore( handle, 1, NULL );
|
||||
+ ReleaseSemaphore( handle2, 1, NULL );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 1, "got %u\n", ret);
|
||||
+ ok(ret == 1, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ReleaseSemaphore( handle, 1, NULL );
|
||||
+ ReleaseSemaphore( handle2, 1, NULL );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, TRUE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ReleaseSemaphore( handle, 1, NULL );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, TRUE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = CloseHandle( handle );
|
||||
+ ok(ret, "got error %u\n", ret);
|
||||
+ ok(ret, "got error %lu\n", ret);
|
||||
+
|
||||
+ ret = CloseHandle( handle2 );
|
||||
+ ok(ret, "got error %u\n", ret);
|
||||
+ ok(ret, "got error %lu\n", ret);
|
||||
}
|
||||
|
||||
static void test_waitable_timer(void)
|
||||
|
@@ -32,100 +32,100 @@ index ad6ab1adc96..95f51f54b83 100644
|
||||
CloseHandle( handle );
|
||||
+
|
||||
+ handle = CreateEventA( NULL, TRUE, FALSE, NULL );
|
||||
+ ok(!!handle, "got error %u\n", GetLastError());
|
||||
+ ok(!!handle, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = SetEvent( handle );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = SetEvent( handle );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ for (i = 0; i < 100; i++)
|
||||
+ {
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+ }
|
||||
+
|
||||
+ ret = ResetEvent( handle );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ResetEvent( handle );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ handle2 = CreateEventA( NULL, FALSE, TRUE, NULL );
|
||||
+ ok(!!handle2, "got error %u\n", GetLastError());
|
||||
+ ok(!!handle2, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = SetEvent( handle2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = SetEvent( handle2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ResetEvent( handle2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ResetEvent( handle2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ handles[0] = handle;
|
||||
+ handles[1] = handle2;
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ SetEvent( handle );
|
||||
+ SetEvent( handle2 );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ResetEvent( handle );
|
||||
+ SetEvent( handle2 );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 1, "got %u\n", ret);
|
||||
+ ok(ret == 1, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ SetEvent( handle );
|
||||
+ SetEvent( handle2 );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, TRUE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, TRUE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ SetEvent( handle2 );
|
||||
+ ResetEvent( handle );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, TRUE, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForSingleObject( handle2, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ handles[0] = handle2;
|
||||
+ handles[1] = handle;
|
||||
@@ -133,19 +133,19 @@ index ad6ab1adc96..95f51f54b83 100644
|
||||
+ SetEvent( handle2 );
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 1, "got %u\n", ret);
|
||||
+ ok(ret == 1, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, handles, FALSE, 0 );
|
||||
+ ok(ret == 1, "got %u\n", ret);
|
||||
+ ok(ret == 1, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = CloseHandle( handle );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = CloseHandle( handle2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
}
|
||||
|
||||
static void test_semaphore(void)
|
||||
|
@@ -23,7 +23,7 @@ index ea54cb069df..790b7bfe797 100644
|
||||
+ DWORD ret;
|
||||
+
|
||||
+ ret = WaitForSingleObject( mutex, 0 );
|
||||
+ ok(ret == expect, "expected %u, got %u\n", expect, ret);
|
||||
+ ok(ret == expect, "expected %lu, got %lu\n", expect, ret);
|
||||
+
|
||||
+ if (!ret) ReleaseMutex( mutex );
|
||||
+ return 0;
|
||||
@@ -41,11 +41,11 @@ index ea54cb069df..790b7bfe797 100644
|
||||
CloseHandle(hCreated);
|
||||
+
|
||||
+ mutex = CreateMutexA( NULL, FALSE, NULL );
|
||||
+ ok(!!mutex, "got error %u\n", GetLastError());
|
||||
+ ok(!!mutex, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(!ret, "got %d\n", ret);
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %u\n", GetLastError());
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ for (i = 0; i < 100; i++)
|
||||
+ {
|
||||
@@ -56,12 +56,12 @@ index ea54cb069df..790b7bfe797 100644
|
||||
+ for (i = 0; i < 100; i++)
|
||||
+ {
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+ }
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(!ret, "got %d\n", ret);
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %u\n", GetLastError());
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ thread = CreateThread( NULL, 0, mutex_thread, (void *)0, 0, NULL );
|
||||
+ ret = WaitForSingleObject( thread, 2000 );
|
||||
@@ -74,21 +74,21 @@ index ea54cb069df..790b7bfe797 100644
|
||||
+ ok(ret == 0, "wait failed: %u\n", ret);
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ thread = CreateThread( NULL, 0, mutex_thread, (void *)0, 0, NULL );
|
||||
+ ret = WaitForSingleObject( thread, 2000 );
|
||||
+ ok(ret == 0, "wait failed: %u\n", ret);
|
||||
+
|
||||
+ mutex2 = CreateMutexA( NULL, TRUE, NULL );
|
||||
+ ok(!!mutex2, "got error %u\n", GetLastError());
|
||||
+ ok(!!mutex2, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex2 );
|
||||
+ ok(!ret, "got %d\n", ret);
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %u\n", GetLastError());
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ mutices[0] = mutex;
|
||||
+ mutices[1] = mutex2;
|
||||
@@ -97,26 +97,26 @@ index ea54cb069df..790b7bfe797 100644
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex2 );
|
||||
+ ok(!ret, "got %d\n", ret);
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %u\n", GetLastError());
|
||||
+ ok(GetLastError() == ERROR_NOT_OWNER, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = WaitForMultipleObjects( 2, mutices, TRUE, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = ReleaseMutex( mutex2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = CloseHandle( mutex );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = CloseHandle( mutex2 );
|
||||
+ ok(ret, "got error %u\n", GetLastError());
|
||||
+ ok(ret, "got error %lu\n", GetLastError());
|
||||
+
|
||||
}
|
||||
|
||||
|
@@ -40,33 +40,33 @@ index 4685b7bec06..117edf12fb6 100644
|
||||
ok(status == STATUS_TIMEOUT, "expected STATUS_TIMEOUT, got %08lx\n", status);
|
||||
|
||||
+ ret = WaitForSingleObject( signaled, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ ret = WaitForSingleObject( nonsignaled, 0 );
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+
|
||||
+ /* test that a timed wait actually does wait */
|
||||
+ now = GetTickCount();
|
||||
+ ret = WaitForSingleObject( nonsignaled, 100 );
|
||||
+ then = GetTickCount();
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %u\n", ret);
|
||||
+ ok(abs((then - now) - 100) < 5, "got %u ms\n", then - now);
|
||||
+ ok(ret == WAIT_TIMEOUT, "got %lu\n", ret);
|
||||
+ ok(abs((then - now) - 100) < 5, "got %lu ms\n", then - now);
|
||||
+
|
||||
+ now = GetTickCount();
|
||||
+ ret = WaitForSingleObject( signaled, 100 );
|
||||
+ then = GetTickCount();
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(abs(then - now) < 5, "got %u ms\n", then - now);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+ ok(abs(then - now) < 5, "got %lu ms\n", then - now);
|
||||
+
|
||||
+ ret = WaitForSingleObject( signaled, INFINITE );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
+ ok(ret == 0, "got %lu\n", ret);
|
||||
+
|
||||
+ /* test NT timeouts */
|
||||
+ pNtQuerySystemTime( &ntnow );
|
||||
+ timeout.QuadPart = ntnow.QuadPart + 100 * 10000;
|
||||
+ status = pNtWaitForSingleObject( nonsignaled, FALSE, &timeout );
|
||||
+ pNtQuerySystemTime( &ntthen );
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#x\n", status);
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#lx\n", status);
|
||||
+ ok(abs(((ntthen.QuadPart - ntnow.QuadPart) / 10000) - 100) < 5, "got %s ns\n",
|
||||
+ wine_dbgstr_longlong((ntthen.QuadPart - ntnow.QuadPart) * 100));
|
||||
+
|
||||
@@ -74,22 +74,22 @@ index 4685b7bec06..117edf12fb6 100644
|
||||
+ timeout.QuadPart = -100 * 10000;
|
||||
+ status = pNtWaitForSingleObject( nonsignaled, FALSE, &timeout );
|
||||
+ pNtQuerySystemTime( &ntthen );
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#x\n", status);
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#lx\n", status);
|
||||
+ ok(abs(((ntthen.QuadPart - ntnow.QuadPart) / 10000) - 100) < 5, "got %s ns\n",
|
||||
+ wine_dbgstr_longlong((ntthen.QuadPart - ntnow.QuadPart) * 100));
|
||||
+
|
||||
+ status = pNtWaitForSingleObject( signaled, FALSE, NULL );
|
||||
+ ok(status == 0, "got %#x\n", status);
|
||||
+ ok(status == 0, "got %#lx\n", status);
|
||||
+
|
||||
+ timeout.QuadPart = TIMEOUT_INFINITE;
|
||||
+ status = pNtWaitForSingleObject( signaled, FALSE, &timeout );
|
||||
+ ok(status == 0, "got %#x\n", status);
|
||||
+ ok(status == 0, "got %#lx\n", status);
|
||||
+
|
||||
+ pNtQuerySystemTime( &ntnow );
|
||||
+ timeout.QuadPart = ntnow.QuadPart;
|
||||
+ status = pNtWaitForSingleObject( nonsignaled, FALSE, &timeout );
|
||||
+ pNtQuerySystemTime( &ntthen );
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#x\n", status);
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#lx\n", status);
|
||||
+ ok(abs((ntthen.QuadPart - ntnow.QuadPart) / 10000) < 5, "got %s ns\n",
|
||||
+ wine_dbgstr_longlong((ntthen.QuadPart - ntnow.QuadPart) * 100));
|
||||
+
|
||||
@@ -97,7 +97,7 @@ index 4685b7bec06..117edf12fb6 100644
|
||||
+ timeout.QuadPart = ntnow.QuadPart - 100 * 10000;
|
||||
+ status = pNtWaitForSingleObject( nonsignaled, FALSE, &timeout );
|
||||
+ pNtQuerySystemTime( &ntthen );
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#x\n", status);
|
||||
+ ok(status == STATUS_TIMEOUT, "got %#lx\n", status);
|
||||
+ ok(abs((ntthen.QuadPart - ntnow.QuadPart) / 10000) < 5, "got %s ns\n",
|
||||
+ wine_dbgstr_longlong((ntthen.QuadPart - ntnow.QuadPart) * 100));
|
||||
+
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From ba211cf9d8ca7a462c24a62334813c68d41b3fc0 Mon Sep 17 00:00:00 2001
|
||||
From 8b6a7baacf0a26c7de7524c5f6da37bf4f4c1120 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 30 Aug 2021 15:16:06 +1000
|
||||
Subject: [PATCH] ntoskrnl.exe: Add FltBuildDefaultSecurityDescriptor test
|
||||
@@ -10,10 +10,10 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
2 files changed, 66 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/Makefile.in b/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
index 052a8618a81..9028a392002 100644
|
||||
index ab1db85adbb..9c89e44e70a 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
+++ b/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
@@ -2,7 +2,7 @@ EXTRADEFS = -DWINE_NO_LONG_TYPES
|
||||
@@ -1,7 +1,7 @@
|
||||
TESTDLL = ntoskrnl.exe
|
||||
IMPORTS = advapi32 crypt32 newdev setupapi user32 wintrust ws2_32 hid
|
||||
|
||||
@@ -23,7 +23,7 @@ index 052a8618a81..9028a392002 100644
|
||||
driver2_IMPORTS = winecrt0 ntoskrnl hal
|
||||
driver2_EXTRADLLFLAGS = -nodefaultlibs -nostartfiles -Wl,--subsystem,native
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index dabb3b73f15..187f00c8bcb 100644
|
||||
index de61ed64fa4..a0cdbf0878a 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -32,6 +32,7 @@
|
||||
@@ -50,19 +50,19 @@ index dabb3b73f15..187f00c8bcb 100644
|
||||
+ PSID sid1, sid2;
|
||||
+
|
||||
+ status = FltBuildDefaultSecurityDescriptor(&sd, STANDARD_RIGHTS_ALL);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ ok(sd != NULL, "Failed to return descriptor\n");
|
||||
+
|
||||
+ status = RtlGetGroupSecurityDescriptor(sd, &group, &isdefault);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ ok(group == NULL, "group isn't NULL\n");
|
||||
+
|
||||
+ status = RtlGetOwnerSecurityDescriptor(sd, &owner, &isdefault);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ ok(owner == NULL, "owner isn't NULL\n");
|
||||
+
|
||||
+ status = RtlGetDaclSecurityDescriptor(sd, &present, &acl, &isdefault);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ ok(acl != NULL, "acl is NULL\n");
|
||||
+ ok(acl->AceCount == 2, "got %d\n", acl->AceCount);
|
||||
+
|
||||
@@ -77,21 +77,21 @@ index dabb3b73f15..187f00c8bcb 100644
|
||||
+
|
||||
+ /* SECURITY_BUILTIN_DOMAIN_RID */
|
||||
+ status = RtlGetAce(acl, 0, (void**)&ace);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+
|
||||
+ ok(ace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE, "got %#x\n", ace->Header.AceType);
|
||||
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#x\n", ace->Mask);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
|
||||
+
|
||||
+ ok(RtlEqualSid(sid1, (PSID)&ace->SidStart), "SID not equal\n");
|
||||
+
|
||||
+ /* SECURITY_LOCAL_SYSTEM_RID */
|
||||
+ status = RtlGetAce(acl, 1, (void**)&ace);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#x\n", status);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+
|
||||
+ ok(ace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE, "got %#x\n", ace->Header.AceType);
|
||||
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#x\n", ace->Mask);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
|
||||
+
|
||||
+ ok(RtlEqualSid(sid2, (PSID)&ace->SidStart), "SID not equal\n");
|
||||
+
|
||||
@@ -113,5 +113,5 @@ index dabb3b73f15..187f00c8bcb 100644
|
||||
IoMarkIrpPending(irp);
|
||||
IoQueueWorkItem(work_item, main_test_task, DelayedWorkQueue, irp);
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -74,7 +74,7 @@ index 3a6f8184009..b5231636261 100644
|
||||
+ }
|
||||
+
|
||||
+ if (pdev->brush.style != BS_NULL &&
|
||||
+ !(interior = NtGdiPolyPolyDraw( ULongToHandle(ALTERNATE), points, (const UINT *)&count, 1, NtGdiPolyPolygonRgn )))
|
||||
+ !(interior = ULongToHandle(NtGdiPolyPolyDraw( ULongToHandle(ALTERNATE), points, (const UINT *)&count, 1, NtGdiPolyPolygonRgn ))))
|
||||
+ {
|
||||
+ free( points );
|
||||
+ if (outline) NtGdiDeleteObjectApp( outline );
|
||||
|
@@ -1,18 +1,18 @@
|
||||
From 519a979a6d7c304c65f198b64495f4fd36482fbc Mon Sep 17 00:00:00 2001
|
||||
From 8b435d44bcbeb2e6fd1ef37c8a23405dea88b685 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 26 Feb 2015 06:41:26 +0100
|
||||
Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/file.c | 6 ---
|
||||
dlls/kernelbase/file.c | 77 +++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 71 insertions(+), 12 deletions(-)
|
||||
dlls/kernel32/tests/file.c | 6 ----
|
||||
dlls/kernelbase/file.c | 72 ++++++++++++++++++++++++++++++++++----
|
||||
2 files changed, 66 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
|
||||
index 77174d43d5b..4bd9f790cc0 100644
|
||||
index 1c4cdfea1b4..0d0e6a893c9 100644
|
||||
--- a/dlls/kernel32/tests/file.c
|
||||
+++ b/dlls/kernel32/tests/file.c
|
||||
@@ -1170,23 +1170,17 @@ static void test_CopyFileEx(void)
|
||||
@@ -1169,23 +1169,17 @@ static void test_CopyFileEx(void)
|
||||
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %ld\n", GetLastError());
|
||||
SetLastError(0xdeadbeef);
|
||||
retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
|
||||
@@ -37,7 +37,7 @@ index 77174d43d5b..4bd9f790cc0 100644
|
||||
|
||||
retok = CopyFileExA(source, NULL, copy_progress_cb, hfile, NULL, 0);
|
||||
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c
|
||||
index 02c2e841f85..cabbe2d17c1 100644
|
||||
index 7b1858de424..a98a54ae9b1 100644
|
||||
--- a/dlls/kernelbase/file.c
|
||||
+++ b/dlls/kernelbase/file.c
|
||||
@@ -500,11 +500,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -58,16 +58,11 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
|
||||
if (!source || !dest)
|
||||
{
|
||||
@@ -519,7 +524,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
|
||||
TRACE("%s -> %s, %lx\n", debugstr_w(source), debugstr_w(dest), flags);
|
||||
@@ -526,7 +531,10 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
if (flags & COPY_FILE_OPEN_SOURCE_FOR_WRITE)
|
||||
FIXME("COPY_FILE_OPEN_SOURCE_FOR_WRITE is not supported\n");
|
||||
|
||||
- if ((h1 = CreateFileW( source, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
+ if (flags & COPY_FILE_RESTARTABLE)
|
||||
+ FIXME("COPY_FILE_RESTARTABLE is not supported\n");
|
||||
+ if (flags & COPY_FILE_COPY_SYMLINK)
|
||||
+ FIXME("COPY_FILE_COPY_SYMLINK is not supported\n");
|
||||
+
|
||||
+ if (flags & COPY_FILE_OPEN_SOURCE_FOR_WRITE)
|
||||
+ source_access |= GENERIC_WRITE;
|
||||
+
|
||||
@@ -75,7 +70,7 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
NULL, OPEN_EXISTING, 0, 0 )) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
WARN("Unable to open source %s\n", debugstr_w(source));
|
||||
@@ -527,7 +540,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -534,7 +542,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -84,7 +79,7 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
{
|
||||
WARN("GetFileInformationByHandle returned error for %s\n", debugstr_w(source));
|
||||
HeapFree( GetProcessHeap(), 0, buffer );
|
||||
@@ -553,7 +566,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -560,7 +568,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +92,7 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
(flags & COPY_FILE_FAIL_IF_EXISTS) ? CREATE_NEW : CREATE_ALWAYS,
|
||||
info.FileAttributes, h1 )) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
@@ -563,6 +580,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -570,6 +582,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -127,7 +122,7 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
while (ReadFile( h1, buffer, buffer_size, &count, NULL ) && count)
|
||||
{
|
||||
char *p = buffer;
|
||||
@@ -572,13 +612,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -579,13 +614,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
if (!WriteFile( h2, p, count, &res, NULL ) || !res) goto done;
|
||||
p += res;
|
||||
count -= res;
|
||||
@@ -169,5 +164,5 @@ index 02c2e841f85..cabbe2d17c1 100644
|
||||
CloseHandle( h1 );
|
||||
CloseHandle( h2 );
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 58eba4970c0ab92c7554d76eaa5e4f6571506dbc Mon Sep 17 00:00:00 2001
|
||||
From dd46b005cfcc8aa02bf25c031326e28bd75e0ff2 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Jansen <mark.jansen@reactos.org>
|
||||
Date: Sun, 24 Sep 2017 22:45:22 +0200
|
||||
Subject: [PATCH] kernel32/tests: Add tests for job object accounting
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Mark Jansen <mark.jansen@reactos.org>
|
||||
1 file changed, 95 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
|
||||
index e9e8555c32e..32318ecdffd 100644
|
||||
index e9e8555c32e..e5a9914ca7b 100644
|
||||
--- a/dlls/kernel32/tests/process.c
|
||||
+++ b/dlls/kernel32/tests/process.c
|
||||
@@ -2541,6 +2541,69 @@ static void _create_process(int line, const char *command, LPPROCESS_INFORMATION
|
||||
@@ -28,16 +28,16 @@ index e9e8555c32e..32318ecdffd 100644
|
||||
+
|
||||
+ memset(buf, 0, sizeof(buf));
|
||||
+ ret = pQueryInformationJobObject(job, JobObjectBasicProcessIdList, pid_list, sizeof(buf), &ret_len);
|
||||
+ ok_(__FILE__, line)(ret, "QueryInformationJobObject error %u\n", GetLastError());
|
||||
+ ok_(__FILE__, line)(ret, "QueryInformationJobObject error %lu\n", GetLastError());
|
||||
+ if (ret)
|
||||
+ {
|
||||
+ todo_wine_if(expected_count)
|
||||
+ ok_(__FILE__, line)(expected_count == pid_list->NumberOfAssignedProcesses,
|
||||
+ "Expected NumberOfAssignedProcesses to be %d (expected_count) is %d\n",
|
||||
+ "Expected NumberOfAssignedProcesses to be %d (expected_count) is %ld\n",
|
||||
+ expected_count, pid_list->NumberOfAssignedProcesses);
|
||||
+ todo_wine_if(expected_count)
|
||||
+ ok_(__FILE__, line)(expected_count == pid_list->NumberOfProcessIdsInList,
|
||||
+ "Expected NumberOfProcessIdsInList to be %d (expected_count) is %d\n",
|
||||
+ "Expected NumberOfProcessIdsInList to be %d (expected_count) is %ld\n",
|
||||
+ expected_count, pid_list->NumberOfProcessIdsInList);
|
||||
+
|
||||
+ va_start(valist, expected_count);
|
||||
@@ -45,7 +45,7 @@ index e9e8555c32e..32318ecdffd 100644
|
||||
+ {
|
||||
+ pid = va_arg(valist, DWORD);
|
||||
+ ok_(__FILE__, line)(pid == pid_list->ProcessIdList[n],
|
||||
+ "Expected pid_list->ProcessIdList[%d] to be %x is %lx\n",
|
||||
+ "Expected pid_list->ProcessIdList[%d] to be %lx is %Ix\n",
|
||||
+ n, pid, pid_list->ProcessIdList[n]);
|
||||
+ }
|
||||
+ va_end(valist);
|
||||
@@ -61,21 +61,21 @@ index e9e8555c32e..32318ecdffd 100644
|
||||
+
|
||||
+ memset(&basic_accounting, 0, sizeof(basic_accounting));
|
||||
+ ret = pQueryInformationJobObject(job, JobObjectBasicAccountingInformation, &basic_accounting, sizeof(basic_accounting), &ret_len);
|
||||
+ ok_(__FILE__, line)(ret, "QueryInformationJobObject error %u\n", GetLastError());
|
||||
+ ok_(__FILE__, line)(ret, "QueryInformationJobObject error %lu\n", GetLastError());
|
||||
+ if (ret)
|
||||
+ {
|
||||
+ /* Not going to check process times or page faults */
|
||||
+
|
||||
+ todo_wine_if(total_proc)
|
||||
+ ok_(__FILE__, line)(total_proc == basic_accounting.TotalProcesses,
|
||||
+ "Expected basic_accounting.TotalProcesses to be %d (total_proc) is %d\n",
|
||||
+ "Expected basic_accounting.TotalProcesses to be %d (total_proc) is %ld\n",
|
||||
+ total_proc, basic_accounting.TotalProcesses);
|
||||
+ todo_wine_if(active_proc)
|
||||
+ ok_(__FILE__, line)(active_proc == basic_accounting.ActiveProcesses,
|
||||
+ "Expected basic_accounting.ActiveProcesses to be %d (active_proc) is %d\n",
|
||||
+ "Expected basic_accounting.ActiveProcesses to be %d (active_proc) is %ld\n",
|
||||
+ active_proc, basic_accounting.ActiveProcesses);
|
||||
+ ok_(__FILE__, line)(terminated_proc == basic_accounting.TotalTerminatedProcesses,
|
||||
+ "Expected basic_accounting.TotalTerminatedProcesses to be %d (terminated_proc) is %d\n",
|
||||
+ "Expected basic_accounting.TotalTerminatedProcesses to be %d (terminated_proc) is %ld\n",
|
||||
+ terminated_proc, basic_accounting.TotalTerminatedProcesses);
|
||||
+ }
|
||||
+}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e5ed00ac26224e2f7cc6e2ee769d254ead973ef2 Mon Sep 17 00:00:00 2001
|
||||
From 9b66229c8a8857e4dfbcee80698b83ca0ca7f2f9 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Maurer <dark.shadow4@web.de>
|
||||
Date: Fri, 10 Apr 2020 18:47:18 +0200
|
||||
Subject: [PATCH] kernelbase: Implement sortkey generation on official tables
|
||||
@@ -10,10 +10,10 @@ Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
|
||||
2 files changed, 413 insertions(+), 123 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
|
||||
index 8f48b89334c..1ce19b5b418 100644
|
||||
index 3b43dea2a2b..ac9b4da0d67 100644
|
||||
--- a/dlls/kernel32/tests/locale.c
|
||||
+++ b/dlls/kernel32/tests/locale.c
|
||||
@@ -2560,6 +2560,13 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
|
||||
@@ -2568,6 +2568,13 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
|
||||
lstrlenW(symbols_stripped) + 1, ret);
|
||||
ok(!lstrcmpW(buf, symbols_stripped), "%s string comparison mismatch\n", func_name);
|
||||
|
||||
@@ -22,12 +22,12 @@ index 8f48b89334c..1ce19b5b418 100644
|
||||
+ ret = func_ptr(LCMAP_SORTKEY, lower_case, -1, buf, 2);
|
||||
+ ok(ret == 0, "Expected a failure\n");
|
||||
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
+ "%s unexpected error code %d\n", func_name, GetLastError());;
|
||||
+ "%s unexpected error code %ld\n", func_name, GetLastError());
|
||||
+
|
||||
/* test srclen = 0 */
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = func_ptr(0, upper_case, 0, buf, ARRAY_SIZE(buf));
|
||||
@@ -2989,6 +2996,135 @@ static void test_sorting(void)
|
||||
@@ -3101,6 +3108,135 @@ static void test_sorting(void)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,8 +163,8 @@ index 8f48b89334c..1ce19b5b418 100644
|
||||
static void test_FoldStringA(void)
|
||||
{
|
||||
int ret, i, j;
|
||||
@@ -7194,6 +7330,7 @@ START_TEST(locale)
|
||||
test_NLSVersion();
|
||||
@@ -7492,6 +7628,7 @@ START_TEST(locale)
|
||||
test_locale_nls();
|
||||
test_geo_name();
|
||||
test_sorting();
|
||||
+ test_unicode_sorting();
|
||||
@@ -172,10 +172,10 @@ index 8f48b89334c..1ce19b5b418 100644
|
||||
test_EnumCalendarInfoW();
|
||||
test_EnumCalendarInfoExA();
|
||||
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
|
||||
index 2f2154a0e7c..c16535a5f1a 100644
|
||||
index 997c7b6f4bc..e494fe6bb48 100644
|
||||
--- a/dlls/kernelbase/locale.c
|
||||
+++ b/dlls/kernelbase/locale.c
|
||||
@@ -2164,127 +2164,6 @@ static int wcstombs_codepage( UINT codepage, DWORD flags, const WCHAR *src, int
|
||||
@@ -2857,127 +2857,6 @@ static int wcstombs_codepage( UINT codepage, DWORD flags, const WCHAR *src, int
|
||||
return wcstombs_sbcs( info, src, srclen, dst, dstlen );
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ index 2f2154a0e7c..c16535a5f1a 100644
|
||||
/* compose a full-width katakana. return consumed source characters. */
|
||||
static int compose_katakana( const WCHAR *src, int srclen, WCHAR *dst )
|
||||
{
|
||||
@@ -2612,6 +2491,280 @@ static int compare_weights(int flags, const WCHAR *str1, int len1,
|
||||
@@ -3305,6 +3184,280 @@ static int compare_weights(int flags, const WCHAR *str1, int len1,
|
||||
return len1 - len2;
|
||||
}
|
||||
|
||||
@@ -582,9 +582,9 @@ index 2f2154a0e7c..c16535a5f1a 100644
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
static const struct geoinfo *get_geoinfo_ptr( GEOID geoid )
|
||||
static int compare_tzdate( const TIME_FIELDS *tf, const SYSTEMTIME *compare )
|
||||
{
|
||||
@@ -5302,8 +5455,8 @@ INT WINAPI DECLSPEC_HOTPATCH LCMapStringEx( const WCHAR *locale, DWORD flags, co
|
||||
@@ -5759,8 +5912,8 @@ INT WINAPI DECLSPEC_HOTPATCH LCMapStringEx( const WCHAR *locale, DWORD flags, co
|
||||
TRACE( "(%s,0x%08lx,%s,%d,%p,%d)\n",
|
||||
debugstr_w(locale), flags, debugstr_wn(src, srclen), srclen, dst, dstlen );
|
||||
|
||||
@@ -596,5 +596,5 @@ index 2f2154a0e7c..c16535a5f1a 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,18 +1,18 @@
|
||||
From ef7af537a65151a43603cf10a88d91a73fe07de4 Mon Sep 17 00:00:00 2001
|
||||
From 4b39a274dd286b963fc34048ea131ae1cf4dc71c Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Maurer <dark.shadow4@web.de>
|
||||
Date: Sun, 6 Dec 2020 20:57:16 +0100
|
||||
Subject: [PATCH] kernelbase: Implement CompareString functions
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/locale.c | 33 ++--
|
||||
dlls/kernelbase/locale.c | 286 +++++++++++++++++++----------------
|
||||
2 files changed, 174 insertions(+), 145 deletions(-)
|
||||
dlls/kernel32/tests/locale.c | 33 +++--
|
||||
dlls/kernelbase/locale.c | 261 ++++++++++++++++++-----------------
|
||||
2 files changed, 149 insertions(+), 145 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
|
||||
index 320e8f79387..667a950f4f1 100644
|
||||
index 0ec859363db..59929756dc6 100644
|
||||
--- a/dlls/kernel32/tests/locale.c
|
||||
+++ b/dlls/kernel32/tests/locale.c
|
||||
@@ -1960,16 +1960,16 @@ static void test_CompareStringA(void)
|
||||
@@ -1831,16 +1831,16 @@ static void test_CompareStringA(void)
|
||||
"a\\0b vs a expected CSTR_EQUAL or CSTR_GREATER_THAN, got %d\n", ret);
|
||||
|
||||
ret = CompareStringA(lcid, 0, "\2", 2, "\1", 2);
|
||||
@@ -33,7 +33,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
|
||||
lcid = MAKELCID(MAKELANGID(LANG_POLISH, SUBLANG_DEFAULT), SORT_DEFAULT);
|
||||
|
||||
@@ -2055,9 +2055,9 @@ static void test_CompareStringW(void)
|
||||
@@ -1926,9 +1926,9 @@ static void test_CompareStringW(void)
|
||||
ok(ret == CSTR_EQUAL, "expected CSTR_EQUAL, got %d\n", ret);
|
||||
|
||||
ret = CompareStringW(CP_ACP, NORM_IGNORENONSPACE, ABC_EE, 3, A_ACUTE_BC, 4);
|
||||
@@ -45,7 +45,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
ret = CompareStringW(CP_ACP, NORM_IGNORENONSPACE, A_ACUTE_BC, 4, A_ACUTE_BC_DECOMP, 5);
|
||||
ok(ret == CSTR_EQUAL, "expected CSTR_EQUAL, got %d\n", ret);
|
||||
|
||||
@@ -2069,12 +2069,12 @@ static void test_CompareStringW(void)
|
||||
@@ -1940,12 +1940,12 @@ static void test_CompareStringW(void)
|
||||
ret = CompareStringW(CP_ACP, 0, A_NULL_BC, 4, A_ACUTE_BC, 4);
|
||||
ok(ret == CSTR_LESS_THAN, "expected CSTR_LESS_THAN, got %d\n", ret);
|
||||
ret = CompareStringW(CP_ACP, NORM_IGNORENONSPACE, A_NULL_BC, 4, A_ACUTE_BC, 4);
|
||||
@@ -60,7 +60,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
}
|
||||
|
||||
struct comparestringex_test {
|
||||
@@ -2111,7 +2111,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -1982,7 +1982,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 5 */
|
||||
"tr-TR", 0,
|
||||
@@ -69,7 +69,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
},
|
||||
/* with NORM_IGNORECASE */
|
||||
{ /* 6 */
|
||||
@@ -2136,7 +2136,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -2007,7 +2007,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 11 */
|
||||
"tr-TR", NORM_IGNORECASE,
|
||||
@@ -78,7 +78,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
},
|
||||
/* with NORM_LINGUISTIC_CASING */
|
||||
{ /* 12 */
|
||||
@@ -2161,7 +2161,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -2032,7 +2032,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 17 */
|
||||
"tr-TR", NORM_LINGUISTIC_CASING,
|
||||
@@ -87,7 +87,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
},
|
||||
/* with LINGUISTIC_IGNORECASE */
|
||||
{ /* 18 */
|
||||
@@ -2186,7 +2186,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -2057,7 +2057,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 23 */
|
||||
"tr-TR", LINGUISTIC_IGNORECASE,
|
||||
@@ -96,7 +96,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
},
|
||||
/* with NORM_LINGUISTIC_CASING | NORM_IGNORECASE */
|
||||
{ /* 24 */
|
||||
@@ -2211,7 +2211,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -2082,7 +2082,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 29 */
|
||||
"tr-TR", NORM_LINGUISTIC_CASING | NORM_IGNORECASE,
|
||||
@@ -105,7 +105,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
},
|
||||
/* with NORM_LINGUISTIC_CASING | LINGUISTIC_IGNORECASE */
|
||||
{ /* 30 */
|
||||
@@ -2236,7 +2236,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
@@ -2107,7 +2107,7 @@ static const struct comparestringex_test comparestringex_tests[] = {
|
||||
},
|
||||
{ /* 35 */
|
||||
"tr-TR", NORM_LINGUISTIC_CASING | LINGUISTIC_IGNORECASE,
|
||||
@@ -114,7 +114,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3397,6 +3397,9 @@ static const struct sorting_test_entry unicode_sorting_tests[] =
|
||||
@@ -3372,6 +3372,9 @@ static const struct sorting_test_entry unicode_sorting_tests[] =
|
||||
{ L"en-US", CSTR_LESS_THAN, CSTR_LESS_THAN, 0, L"\x00dc", L"\x1ee9" },
|
||||
{ L"en-US", CSTR_LESS_THAN, CSTR_LESS_THAN, 0, L"\x00fc", L"\x1ee6" },
|
||||
{ L"en-US", CSTR_GREATER_THAN, CSTR_GREATER_THAN, 0, L"\x0152", L"\x00d6" },
|
||||
@@ -124,7 +124,7 @@ index 320e8f79387..667a950f4f1 100644
|
||||
};
|
||||
|
||||
static void test_unicode_sorting(void)
|
||||
@@ -6138,7 +6141,7 @@ static void test_FindNLSStringEx(void)
|
||||
@@ -6260,7 +6263,7 @@ static void test_FindNLSStringEx(void)
|
||||
{ localeW, FIND_FROMSTART, comb_s_accent1W, ARRAY_SIZE(comb_s_accent1W)-1,
|
||||
comb_s_accent2W, ARRAY_SIZE(comb_s_accent2W)-1, 0, 0, 6, 1, TRUE },
|
||||
{ localeW, FIND_FROMSTART, comb_q_accent1W, ARRAY_SIZE(comb_q_accent1W)-1,
|
||||
@@ -134,10 +134,10 @@ index 320e8f79387..667a950f4f1 100644
|
||||
};
|
||||
struct test_data *ptest;
|
||||
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
|
||||
index 5b27dd1d36c..01bc3357cf1 100644
|
||||
index d1d461c84e9..28a69c53144 100644
|
||||
--- a/dlls/kernelbase/locale.c
|
||||
+++ b/dlls/kernelbase/locale.c
|
||||
@@ -2371,126 +2371,6 @@ static int map_to_halfwidth( WCHAR c, WCHAR *dst, int dstlen )
|
||||
@@ -3064,126 +3064,6 @@ static int map_to_halfwidth( WCHAR c, WCHAR *dst, int dstlen )
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
enum sortkey_special_script
|
||||
{
|
||||
SORTKEY_UNSORTABLE = 0,
|
||||
@@ -2528,6 +2408,7 @@ struct sortkey_data
|
||||
@@ -3221,6 +3101,7 @@ struct sortkey_data
|
||||
BYTE *buffer;
|
||||
int buffer_pos;
|
||||
int buffer_len;
|
||||
@@ -272,7 +272,7 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
};
|
||||
|
||||
static DWORD sortkey_get_exception(WCHAR ch, const struct sortguid *locale)
|
||||
@@ -2739,7 +2620,10 @@ static void sortkey_add_diacritic_weights(struct sortkey_data *data, int flags,
|
||||
@@ -3432,7 +3313,10 @@ static void sortkey_add_diacritic_weights(struct sortkey_data *data, int flags,
|
||||
if (old_pos >= diacritic_start_pos)
|
||||
{
|
||||
if (old_pos < data->buffer_len)
|
||||
@@ -283,7 +283,7 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
}
|
||||
else
|
||||
sortkey_add_diacritic_weight(data, info.weight_diacritic, last_weighted_pos);
|
||||
@@ -2948,6 +2832,7 @@ static int sortkey_generate(int flags, const WCHAR *locale_name, const WCHAR *st
|
||||
@@ -3641,6 +3525,7 @@ static int sortkey_generate(int flags, const WCHAR *locale_name, const WCHAR *st
|
||||
data.buffer = buffer;
|
||||
data.buffer_pos = 0;
|
||||
data.buffer_len = buffer ? buffer_len : 0;
|
||||
@@ -291,7 +291,7 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
|
||||
if (str_len == -1)
|
||||
str_len = wcslen(str);
|
||||
@@ -2997,6 +2882,155 @@ static int sortkey_generate(int flags, const WCHAR *locale_name, const WCHAR *st
|
||||
@@ -3690,6 +3575,130 @@ static int sortkey_generate(int flags, const WCHAR *locale_name, const WCHAR *st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -366,7 +366,6 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
+ diacritic_start_pos2 = data2.buffer_pos;
|
||||
+ last_weighted_pos2 = data2.buffer_pos;
|
||||
+ pos_weight_compare = min(data1.buffer_pos, data2.buffer_pos);
|
||||
+
|
||||
+ /* Diacritic weights */
|
||||
+ if (!(flags & NORM_IGNORENONSPACE))
|
||||
+ {
|
||||
@@ -394,29 +393,6 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
+ return CSTR_LESS_THAN;
|
||||
+ }
|
||||
+
|
||||
+ /* Case weights */
|
||||
+ for (i1 = 0, i2 = 0; i1 < str1_len || i2 < str2_len; i1++, i2++)
|
||||
+ {
|
||||
+ int pos_weight_compare = min(data1.buffer_pos, data2.buffer_pos);
|
||||
+ if (i1 < str1_len)
|
||||
+ {
|
||||
+ sortkey_add_case_weights(&data1, flags, str1[i1], locale);
|
||||
+ }
|
||||
+ if (i2 < str2_len)
|
||||
+ {
|
||||
+ sortkey_add_case_weights(&data2, flags, str2[i2], locale);
|
||||
+ }
|
||||
+
|
||||
+ ret = early_exit_sortkey_comparison(&data1, &data2, pos_weight_compare);
|
||||
+ if (ret != CSTR_EQUAL)
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ if (data1.buffer_pos > data2.buffer_pos)
|
||||
+ return CSTR_GREATER_THAN;
|
||||
+ if (data1.buffer_pos < data2.buffer_pos)
|
||||
+ return CSTR_LESS_THAN;
|
||||
+
|
||||
+ /* Special weights */
|
||||
+ for (i1 = 0, i2 = 0; i1 < str1_len || i2 < str2_len; i1++, i2++)
|
||||
+ {
|
||||
@@ -443,11 +419,10 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
+ return CSTR_EQUAL;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static const struct geoinfo *get_geoinfo_ptr( GEOID geoid )
|
||||
static int compare_tzdate( const TIME_FIELDS *tf, const SYSTEMTIME *compare )
|
||||
{
|
||||
int min = 0, max = ARRAY_SIZE( geoinfodata )-1;
|
||||
@@ -3471,16 +3505,8 @@ INT WINAPI CompareStringEx( const WCHAR *locale, DWORD flags, const WCHAR *str1,
|
||||
static const int month_lengths[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
@@ -4166,16 +4175,8 @@ INT WINAPI CompareStringEx( const WCHAR *locale, DWORD flags, const WCHAR *str1,
|
||||
if (len1 < 0) len1 = lstrlenW(str1);
|
||||
if (len2 < 0) len2 = lstrlenW(str2);
|
||||
|
||||
@@ -467,5 +442,5 @@ index 5b27dd1d36c..01bc3357cf1 100644
|
||||
|
||||
|
||||
--
|
||||
2.30.2
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,42 +1,42 @@
|
||||
From 9ecf6543f498cfc6c1cfb44033746cfd1ba16587 Mon Sep 17 00:00:00 2001
|
||||
From f2347ae7216626d248cfaf9445862561b2b5eef7 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 1 Jul 2019 09:58:55 +1000
|
||||
Subject: [PATCH] loader: Add Keyboard Layouts registry enteries.
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
loader/wine.inf.in | 215 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 215 insertions(+)
|
||||
loader/wine.inf.in | 209 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 209 insertions(+)
|
||||
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index 6e0cb212531..fc929859be3 100644
|
||||
index ff601e41b26..6ffb8c56d87 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -39,6 +39,7 @@ AddReg=\
|
||||
@@ -63,6 +63,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
Nls,\
|
||||
@@ -63,6 +64,7 @@ AddReg=\
|
||||
OLE,\
|
||||
@@ -87,6 +88,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
Nls,\
|
||||
@@ -90,6 +92,7 @@ AddReg=\
|
||||
OLE,\
|
||||
@@ -113,6 +115,7 @@ AddReg=\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
Fonts,\
|
||||
+ KeyboardLayouts,\
|
||||
MCI,\
|
||||
Misc,\
|
||||
Nls,\
|
||||
@@ -138,6 +141,7 @@ AddReg=\
|
||||
OLE,\
|
||||
@@ -160,6 +163,7 @@ AddReg=\
|
||||
CurrentVersionWow64,\
|
||||
Debugger,\
|
||||
DirectX,\
|
||||
@@ -44,16 +44,10 @@ index 6e0cb212531..fc929859be3 100644
|
||||
MCI,\
|
||||
Misc,\
|
||||
Tapi,\
|
||||
@@ -1087,6 +1091,217 @@ HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00021004",,"a"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00021404",,"9"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00030404",,"9"
|
||||
@@ -597,6 +601,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic
|
||||
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice,"ProgId",,"http"
|
||||
HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice,"ProgId",,"https"
|
||||
|
||||
+HKLM,System\CurrentControlSet\Control\Nls\Normalization,"1",,"normnfc.nls"
|
||||
+HKLM,System\CurrentControlSet\Control\Nls\Normalization,"2",,"normnfd.nls"
|
||||
+HKLM,System\CurrentControlSet\Control\Nls\Normalization,"5",,"normnfkc.nls"
|
||||
+HKLM,System\CurrentControlSet\Control\Nls\Normalization,"6",,"normnfkd.nls"
|
||||
+HKLM,System\CurrentControlSet\Control\Nls\Normalization,"d",,"normidna.nls"
|
||||
+
|
||||
+[KeyboardLayouts]
|
||||
+HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts,,16
|
||||
+HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000401,,16
|
||||
@@ -263,5 +257,5 @@ index 6e0cb212531..fc929859be3 100644
|
||||
HKLM,"Software\Microsoft\OLE","EnableDCOM",,"Y"
|
||||
HKLM,"Software\Microsoft\OLE","EnableRemoteConnect",,"N"
|
||||
--
|
||||
2.25.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -51,7 +51,7 @@ index ff050863b6f..2c118d89d1d 100644
|
||||
+
|
||||
+ location = NULL;
|
||||
+ hres = IHTMLDocument2_get_location(doc, &location);
|
||||
+ ok(hres == S_OK, "get_location failed: %08x\n", hres);
|
||||
+ ok(hres == S_OK, "get_location failed: %08lx\n", hres);
|
||||
+ ok(location != NULL, "location == NULL\n");
|
||||
+
|
||||
+ SET_EXPECT(TranslateUrl);
|
||||
@@ -70,7 +70,7 @@ index ff050863b6f..2c118d89d1d 100644
|
||||
+
|
||||
+ str = SysAllocString(new_hash);
|
||||
+ hres = IHTMLLocation_put_hash(location, str);
|
||||
+ ok (hres == S_OK, "put_hash failed: %08x\n", hres);
|
||||
+ ok (hres == S_OK, "put_hash failed: %08lx\n", hres);
|
||||
+ SysFreeString(str);
|
||||
+
|
||||
+ CHECK_CALLED(TranslateUrl);
|
||||
@@ -82,7 +82,7 @@ index ff050863b6f..2c118d89d1d 100644
|
||||
+
|
||||
+ /* Check the result */
|
||||
+ hres = IHTMLLocation_get_hash(location, &str);
|
||||
+ ok(hres == S_OK, "get_hash failed: %08x\n", hres);
|
||||
+ ok(hres == S_OK, "get_hash failed: %08lx\n", hres);
|
||||
+ ok(!wcscmp(str, new_hash), "expected %s, got %s\n", debugstr_w(new_hash), debugstr_w(str));
|
||||
+ SysFreeString(str);
|
||||
+
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user