"Matt Finnicum" <mattfinn(a)gmail.com> writes:
> This fixes bug 7148 - a regression caused by one of my older patches.
> This restores the old code that prevented ME_StreamIn from erroneously
> creating undos.
>
> Changelog:
> riched20: Don't create undos in ME_StreamIn
It breaks the tests:
../../../tools/runtest -q -P wine -M riched20.dll -T ../../.. -p riched20_test.exe.so editor.c && touch editor.ok
editor.c:862: Test failed: EM_SETUNDOLIMIT didn't allow the first undo with UNDOLIMIT set to 2
editor.c:865: Test failed: EM_SETUNDOLIMIT didn't allow a second undo with UNDOLIMIT set to 2
editor.c:1447: Test failed: test paste: strcmp = -1
make[2]: *** [editor.ok] Error 3
--
Alexandre Julliard
julliard(a)winehq.org
And some other problems with the patch:
"Damjan Jovanovic" <damjan.jov(a)gmail.com> wrote:
> --- a/include/winbase.h 2007-01-09 17:42:47.000000000 +0200
> +++ b/include/winbase.h 2007-01-24 09:50:04.000000000 +0200
> @@ -2343,6 +2343,14 @@
>
> #endif /* __i386__ && __GNUC__ && __WINESRC__ && !_NTSYSTEM_ */
>
> +#if (_WIN32_WINNT >= 0x0501)
> +VOID WINAPI InitializeSListHead(PSLIST_HEADER);
> +USHORT WINAPI QueryDepthSList(PSLIST_HEADER);
> +PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
> +PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
> +PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY);
> +#endif
Usually Wine doesn't use and doesn't need the checks for _WIN32_WINNT
and similar macros. There are a couple of violations to that rule, but
they need to be fixed.
libs/port/interlocked.c changes should be sent separately, please remove
c++ comments from them first.
--
Dmitry.
"Damjan Jovanovic" <damjan.jov(a)gmail.com> wrote:
> + kernel32 = LoadLibraryA("KERNEL32.DLL");
All the kernel32 tests are already implicitly linked to kernel32.dll,
therefore GetModuleHandle("kernel32.dll") is perfectly enough and is
guaranteed to succeed.
> + if (kernel32 == NULL)
> + {
> + trace("couldn't open KERNEL32.DLL, skipping slist tests\n");
> + return;
> + }
There was a new Wine test function introduced to mark the skipped tests -
skip(), please use it when a test is going to be skipped for whatever reason.
> + pInitializeSListHead = (void*) GetProcAddress(kernel32, "InitializeSListHead");
> + pQueryDepthSList = (void*) GetProcAddress(kernel32, "QueryDepthSList");
> + pInterlockedFlushSList = (void*) GetProcAddress(kernel32, "InterlockedFlushSList");
> + pInterlockedPopEntrySList = (void*) GetProcAddress(kernel32, "InterlockedPopEntrySList");
> + pInterlockedPushEntrySList = (void*) GetProcAddress(kernel32, "InterlockedPushEntrySList");
> + if (pInitializeSListHead == NULL ||
> + pQueryDepthSList == NULL ||
> + pInterlockedFlushSList == NULL ||
> + pInterlockedPopEntrySList == NULL ||
> + pInterlockedPushEntrySList == NULL)
> + {
> + trace("some required slist entrypoints were not found, skipping tests\n");
> + FreeLibrary(kernel32);
> + }
A 'return;' is missing here, as well as a skip() call.
--
Dmitry.
On Mi, 2007-01-24 at 13:31 +1100, Jeff Latimer wrote:
Thanks for your update.
Just a small typo (Device => Driver):
DDK is the Windows Driver Development Kit
--
By by ... Detlef
Wine-0.9.27's iexplore.exe isn't downloading gecko for me.
It tries, but then gives up, and says html rendering is disabled.
+wininet shows that it did connect to winehq.org and got
a redirect to sourceforge:
trace:wininet:HTTP_GetResponseHeaders raw headers: L"HTTP/1.1 302
Found\r\nDate: Thu, 11 Jan 2007 15:47:17 GMT\r\nServer: Apache/2.0.54
(Debian GNU/Linux)\r\nLocation:
http://optusnet.dl.sourceforge.net/sourceforge/wine/wine_gecko.cab\r\nConne…:
close\r\nContent-Type: text/html\r\n\r\n"
but no connection request to that new URL, and the cabextract failed.
I guess I'll try with a newer wine once I get to the office...
- Dan
Hi everyone,
i'm taking a look at wine's directplay implementation. From the the wiki i've
seen that there are efforts to understand the directplay protocol. But it
seems to be be quite a difficult task. Would not be a better idea to
implement a wine directplay service provider with our own protocol, not
compatible with microsoft tcp/ip service provider, but portable and usable on
both windows and linux?
Bye
Pignotti Alessandro
--
Vi Veri Veniversum Vivus Vici
-Dr. Faustus - Marlowe
"Clinton Stimpson" <cjstimpson(a)utwire.net> wrote:
> - if (lParam) paint_button( hWnd, btn_type, ODA_DRAWENTIRE );
> + if (LOWORD(lParam)) InvalidateRect(hWnd, NULL, TRUE);
Your test doesn't show that the usage of LOWORD(lParam) is justified.
--
Dmitry.
Hi! I'm new to Wine, but not a total newbie at C. I have a very
specific interest: I would like Wine to support more keys.
Background: Windows has support for no fewer than 24 function keys;
in fact, possibly, as many as 32. However, right now, Wine only supports
16 of them. It is insanely trivial to patch Wine to support 24 function
keys by plugging new values into nonchar_key_vkey and nonchar_key_scan.
It is not much harder to support 32 at least partially; some sites
claim that vkey values 0x88-0x8F are intended to be used as F25-F32,
but there are no corresponding codes. Well, okay; it's not unheard of for
a key to have a vkey value but no corresponding scan code.
I have diffs for this. It works.
There's just one TINY little problem. Many Windows games have no support
for these keys! NOOOOO!
I have implemented and tested a patch which is almost certainly unsuitable
for production, but which is very convenient to me; it is this patch I
enclose. This patch replaces F13-F24 with "control-alt-F1" through
"control-alt-F12", and F25-F32 control-alt-shift-F1 through F8.
Now, this is great for me, but it is obviously unsuitable as the only
behavior; it deprives people of functioning keys. (My implementation
my also be utter crap, but "it works in Warcraft", and that's my real
interest.)
I have no clue how to do Wine configuration settings. I think that this
behavior is likely to be useful to a lot of people; X systems are easy to
configure to generate extra keysyms, and many people have interesting
keyboards which generate a broad range of additional values. Binding them
to function keys is useful, and this patch would allow people to use
such things in Windows games.
Insofar as I have any possible copyright claim on this patch, I hereby
release it into the public domain. Also, not in patch form, the winuser.h
change:
#define VK_F25 0x88
#define VK_F26 0x89
#define VK_F27 0x8A
#define VK_F28 0x8B
#define VK_F29 0x8C
#define VK_F30 0x8D
#define VK_F31 0x8E
#define VK_F32 0x8F
---
*** keyboard.c.orig Mon Jan 22 11:10:15 2007
--- keyboard.c Mon Jan 22 13:59:38 2007
***************
*** 1020,1027 ****
/* function keys */
VK_F1, VK_F2,
VK_F3, VK_F4, VK_F5, VK_F6, VK_F7, VK_F8, VK_F9, VK_F10, /* FFC0 */
! VK_F11, VK_F12, VK_F13, VK_F14, VK_F15, VK_F16, 0, 0, /* FFC8 */
! 0, 0, 0, 0, 0, 0, 0, 0, /* FFD0 */
0, 0, 0, 0, 0, 0, 0, 0, /* FFD8 */
/* modifier keys */
0, VK_SHIFT, VK_SHIFT, VK_CONTROL, /* FFE0 */
--- 1020,1027 ----
/* function keys */
VK_F1, VK_F2,
VK_F3, VK_F4, VK_F5, VK_F6, VK_F7, VK_F8, VK_F9, VK_F10, /* FFC0 */
! VK_F11, VK_F12, VK_F13, VK_F14, VK_F15, VK_F16, VK_F17, VK_F18, /* FFC8 */
! VK_F19, VK_F20, VK_F21, VK_F22, VK_F23, VK_F24, 0, 0, /* FFD0 */
0, 0, 0, 0, 0, 0, 0, 0, /* FFD8 */
/* modifier keys */
0, VK_SHIFT, VK_SHIFT, VK_CONTROL, /* FFE0 */
***************
*** 1066,1073 ****
/* function keys */
0x3B, 0x3C,
0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, /* FFC0 */
! 0x57, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* FFC8 */
! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* FFD0 */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* FFD8 */
/* modifier keys */
0x00, 0x2A, 0x36, 0x1D, 0x11D, 0x3A, 0x00, 0x38, /* FFE0 */
--- 1066,1073 ----
/* function keys */
0x3B, 0x3C,
0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, /* FFC0 */
! 0x57, 0x58, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, /* FFC8 */
! 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x76, 0x00, 0x00, /* FFD0 */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* FFD8 */
/* modifier keys */
0x00, 0x2A, 0x36, 0x1D, 0x11D, 0x3A, 0x00, 0x38, /* FFE0 */
***************
*** 1465,1471 ****
if ( event->type == KeyRelease ) dwFlags |= KEYEVENTF_KEYUP;
if ( vkey & 0x100 ) dwFlags |= KEYEVENTF_EXTENDEDKEY;
! X11DRV_send_keyboard_input( vkey & 0xff, bScan, dwFlags, event_time, 0, 0 );
}
}
}
--- 1465,1499 ----
if ( event->type == KeyRelease ) dwFlags |= KEYEVENTF_KEYUP;
if ( vkey & 0x100 ) dwFlags |= KEYEVENTF_EXTENDEDKEY;
! if ((vkey & 0xFF) >= VK_F13 && (vkey & 0xFF) <= VK_F24) {
! /* translate to control-alt-F(N-12) */
! vkey = vkey - 12;
! if (event->type != KeyRelease) {
! X11DRV_send_keyboard_input(VK_MENU, 0, 0, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_CONTROL, 0, 0, event_time, 0, 0 );
! }
! X11DRV_send_keyboard_input( vkey & 0xff, bScan, dwFlags, event_time, 0, 0 );
! if (event->type != KeyRelease) {
! X11DRV_send_keyboard_input(VK_CONTROL, 0, KEYEVENTF_KEYUP, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_MENU, 0, KEYEVENTF_KEYUP, event_time, 0, 0 );
! }
! } else if ((vkey & 0xFF) >= VK_F25 && (vkey & 0xFF) <= VK_F32) {
! /* translate to control-alt-F(N-12) */
! vkey = vkey - 24;
! if (event->type != KeyRelease) {
! X11DRV_send_keyboard_input(VK_MENU, 0, 0, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_CONTROL, 0, 0, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_SHIFT, 0, 0, event_time, 0, 0 );
! }
! X11DRV_send_keyboard_input( vkey & 0xff, bScan, dwFlags, event_time, 0, 0 );
! if (event->type != KeyRelease) {
! X11DRV_send_keyboard_input(VK_SHIFT, 0, KEYEVENTF_KEYUP, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_CONTROL, 0, KEYEVENTF_KEYUP, event_time, 0, 0 );
! X11DRV_send_keyboard_input(VK_MENU, 0, KEYEVENTF_KEYUP, event_time, 0, 0 );
! }
! } else {
! X11DRV_send_keyboard_input( vkey & 0xff, bScan, dwFlags, event_time, 0, 0 );
! }
}
}
}
***************
*** 2253,2260 ****
function keys. Soooo.. We will leave the table alone and
fudge the lookup here till the other part is found and fixed!!! */
! if ( ((scanCode >= 0x13b) && (scanCode <= 0x144)) ||
! (scanCode == 0x157) || (scanCode == 0x158))
scanCode &= 0xff; /* remove "extended-key" flag for Fx keys */
/* let's do scancode -> keycode -> keysym -> String */
--- 2281,2290 ----
function keys. Soooo.. We will leave the table alone and
fudge the lookup here till the other part is found and fixed!!! */
! if (((scanCode >= 0x13b) && (scanCode <= 0x144)) ||
! ((scanCode >= 0x164) && (scanCode <= 0x16e)) ||
! (scanCode == 0x157) || (scanCode == 0x158) ||
! (scanCode == 0x176))
scanCode &= 0xff; /* remove "extended-key" flag for Fx keys */
/* let's do scancode -> keycode -> keysym -> String */