Alexandre Goujon ale.goujon@gmail.com writes:
@@ -1563,8 +1564,16 @@ sub HANDLE_FILE(@) } printf OUTPUT "#include "wine/unicode.h"\n\n";
- @lb_ranges = get_lb_ranges();
- if( $codepage == 1361 )
- {
$lb_ranges[0] = 0x81;
$lb_ranges[2] = 0xd8;
- }
A quick test on Windows shows that this isn't correct as far as the kernel32 info is concerned.
On 09/03/2010 11:18 AM, Alexandre Julliard wrote:
A quick test on Windows shows that this isn't correct as far as the kernel32 info is concerned
Huh ? What test did you do ? I compiled the attached source with mingw on my virtual XP. (unfortunately, G**gle prevent me from attaching the produced executable) I used the __p__mbcbyte() function to retrieve the complete MSVCRT_mbctype (http://source.winehq.org/git/wine.git/?a=blob;f=dlls/msvcrt/mbcs.c#l159)
On my windows, there is no output. On wine : alex@Evan:~$ wine /VM/share/test_mbcs.exe 8 != 12 @ 0x82 (130) 8 != 12 @ 0x83 (131) 8 != 12 @ 0x84 (132) 8 != 12 @ 0xD9 (217)
It misses (12-8=) 4 (_M1) added here (http://source.winehq.org/git/wine.git/?a=blob;f=dlls/msvcrt/mbcs.c#l231) if they are leading bytes.
That's why I modify the range of the leading bytes of the 1361 codepage table from 84-d3 to 81-d3 and from d9-de to d8-de.
And tests say that ( dlls/msvcrt/tests/string.c ~line 354)
expect_eq(_ismbblead(0x81), 1, int, "%d"); expect_eq(_ismbblead(0x83), 1, int, "%d"); expect_eq(_ismbblead(0xd8), 1, int, "%d");
I may have missed something or my virtual XP is really specific or it depends on windows version. Any idea ?
Thanks
GOUJON Alexandre ale.goujon@gmail.com writes:
On 09/03/2010 11:18 AM, Alexandre Julliard wrote:
A quick test on Windows shows that this isn't correct as far as the kernel32 info is concerned
Huh ? What test did you do ?
GetCPInfo, that's where the kernel32 info is.
On 09/03/2010 12:30 PM, Alexandre Julliard wrote:
GetCPInfo, that's where the kernel32 info is.
I must admit I don't understand anymore. GetCPInfo failed with codepage 1361 on my XP (whereas _setmbcp(1361) succeeded )
However, on WXPPROJASP3 (32 bit) [1], GetCPInfo succeeds and LeadByte[] contains { 0x84, 0xd3, 0xd8, 0xde, 0xe0, 0xf9, 0x00, 0x00 } (so the only change is actually 0xd9 -> 0xd8)
I give up on this one. You're quite busy and there are plenty of others todo_wine to fix.
Anyway, thanks for your comments ! --- https://testbot.winehq.org/JobDetails.pl?Key=4986&log_109=1#k109