Hi all The latest wine cvs (2004-01-17) seems to have a few problems that I would like to bring to attention. Office 97 (turkish version) is unable to save new or opened documents and displays a messagebox stating that the disk is full. This has happened since cvs 2003-12-13. Quicken 2000 displays the number 8 instead of a slash(/) in date fields eg. 1780182004 instead of 17/01/2004. This problem has been evident since before cvs 2003-12-13. The keyboard detection when starting wine does not detect my turkish keyboard and choses a scandinavion keyboard instead. I had a look at the keyboard.c and there is a turkish keyboard defined. I found in the X11DRV_KEYBOARD_DetectLayout function that the keysym detection loop exited at the first wrong match which resulted in an incorrect match for the keyboard. Attached is a patch that appears (for me) to solve this problem. This problem has been evident since before cvs 2003-12-13. Wine still states that it is unable to find the correct keyboard but it at least loads and uses the correct definition although some keys don't work correctly. If someone could give me some pointers on where to look for the quicken and office 97 problems I can try (free time dependant) to find out whats wrong. -- Shane Shields Registered LFS Compiler: 7582 To drink the WINE of success you must first seek the sayings of source Anyone sending unwanted advertising e-mail to this address will be charged $25 for network traffic and computing time. By extracting my address from this message or its header, you agree to these terms.
diff -U 3 -H -d -r -N -a -- wine.orig/dlls/x11drv/keyboard.c wine/dlls/x11drv/keyboard.c --- wine.orig/dlls/x11drv/keyboard.c 2003-12-30 23:42:34.000000000 +0200 +++ wine/dlls/x11drv/keyboard.c 2004-01-17 18:36:42.000000000 +0200 @@ -1257,11 +1257,9 @@ /* the table, it's okay that the X server has "3#£", for example) */ /* however, the score will be higher for longer matches */ for (key = 0; key < MAIN_LEN; key++) { - for (ok = 0, i = 0; (ok >= 0) && (i < syms); i++) { + for (ok = 0, i = 0;i < syms; i++) { if ((*lkey)[key][i] && ((*lkey)[key][i] == ckey[i])) ok++; - if ((*lkey)[key][i] && ((*lkey)[key][i] != ckey[i])) - ok = -1; } if (ok > 0) { score += ok;