Use wide characters and manual wide character conversions.
DOS routines use OEM code page and not ANSI code page and
Wine uses wide characters as default character set, anyway.
Regarding this part, I think we'd better rely for int21 support to the
SetFileApisToOEM and SetFileApisToANSI APIs (and or course implementing them correctly).
I'd suggest changing the oem_files_api to a krnl_file_api_codepage (or something like this) which would be set to either CP_ANSI or CP_OEM and use this variable in most of file related A functions (instead of our current CP_ANSI). Then we would set OEM APIs on int21 entry (and reset to the old mode on exit). I assume we hold a lock while executing the int21 API, so preventing some multi-threading issues on this.
Any comment before I go on?
A+
--
Eric Pouech





Reply via email to