From: Arseny S. <am...@ic...> - 2001-10-17 11:09:32
|
Hello Sam, Tuesday, October 16, 2001, 8:01:03 AM, you wrote: >> >> I changed win32 streams again, I believe it looks nicer now. >> Sam> thanks - please re-submit the patch, removing the workaround for the >> Sam> above bug. >> I have 2 patches at the moment, 1st just makes a code look nicer (affects >> only stream.d) and second (encoding.d, stream.d, win32.d, win32aux.d) >> changes default terminal encoding for win32 to OEM code page so that >> ANSI2OEM/OEM2ANSI not needed anymore (when with unicode). Unicode characters >> (frame chars for example) may then being printed. Sam> okay - could you please elaborate? Sam> I just want to understand what you did. Sam> Do I understand correctly that you are just saving the ANSI2OEM/OEM2ANSI Sam> conversions for the terminal i/o on win32? The point of initialization of terminal codepage to OEM: In the original charset translation of internal unicode character occur in two stages: UC -->(internal en/decoding mechanism)--> ANSI CHAR /Windows charset/ -->(ANSI2OEM)--> OEM (screen char) (and back to front) There are some characters which cannot pass this scheme unharmed and can be succesfully translated to OEM charset directly through internal mechanism. So I changed (only in UNICODE and WIN32_NATIVE part) default value of *terminal-encoding* to OEM and removed any extra translations from window-stream and win32 lowlevel file routines (which checked itself if it is a console and if it is, translated the data to/from OEM). Patch touches only console and screen streams and only in win32. The OEM charset detection method is like iconv method: iconv: static char buf[2 + 10 + 1]; sprintf (buf, "CP%u", GetACP ()); codeset = buf; new function 'win_console_encoding': static char buf[2+10+1]; sprintf(buf,"CP%u",GetOEMCP()); >> Diffs are not incremental (i.e. it needs only one zip for patching) Sam> too bad. I would rather commit the "functionality changes" and Sam> "reformatting" separately. Sam> Also, we need a single ChangeLog entry per commit. Piece of cake. Sam> Finally, the files in the zip files are weird: "encoding.151.a.dif" Sam> should be called "encoding.d.diff" etc. That's version numbers. I not assimilate that CVS branch stuff yet. -- Best regards, Arseny mailto:am...@ic... |