[Mono-dev] [PATCH] Use correct console code page on Windows (affects Linux as well)

Kornél Pál kornelpal at gmail.com
Thu Jul 27 11:53:37 EDT 2006


I recently posted this patch:

But I received no comments and didn't think that this can cause problems on 
other OSes so I commited it:

This was later reverted by Miguel because he pointed out that this causes 
problems on non-Windows operating systems:

>    There is already a process to fetch the proper encoding in the file,
>and you added a new setup.   And to make things worse, considering the
>inliner can decide to inline, this means that on Linux, we get an extra
>hit for looking up kernel32.dll every time.
>    If this is required, discuss this on the list.
>open("/mono/lib/mono/1.0/advapi32.dll", O_RDONLY|O_LARGEFILE) = -1
>ENOENT (No such file or directory)
>open("/mono/lib/mono/1.0/kernel32.dll", O_RDONLY|O_LARGEFILE) = -1
>ENOENT (No such file or directory)
>open("/mono/lib/mono/1.0/ole32.dll", O_RDONLY|O_LARGEFILE) = -1 ENOENT
>(No such file or directory)

As for advapi32.dll and ole32.dll I don't think that these hints are caused 
by my modifications.

Windows uses different code pages (DOS code pages) for console than for GUI 
applications (that is Encoding.Default) so this patch (or something 
functionally equivalent) is required.

This initialization is done only once (in static constructor) so I don't 
think that it's worth to use ConsoleDriver in NET_1_1 as well.

Please help to solve this problem occurring on Linux.


More information about the Mono-devel-list mailing list