GNU libiconv-1.13.1 with 1.13 ja-1 patch GNU libiconv http://www.gnu.org/software/libiconv/ libiconv 1.13.1 source http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz libiconv 1.13 ja-1 patch http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.13-ja-patch.html System Requirement ------------------ Genuine EMX version (iconv113.dll and forwarder iconv.dll): - CPU : i486 or above. - OS/2 : maybe V2.1 or upper. (I have tested only under Warp V4 Japanese Edition with FP15) - EMX 0.9d runtime. iconv113.dll needs the EMX core dll and multi-threaded runtime dll. (emx.dll and emxlibcm.dll) kLIBC version (iconvl06.dll): - CPU : Pentium or above. - OS/2 : maybe V4 or upper. (I have tested only under Warp V4 Japanese Edition with FP15) - kLIBC 0.6.3. Quick (and Dirty) Installation ------------------------------- Genuie EMX version: Unzip iconv*-os2emx.zip on your EMX directory. kLIBC version: Unzip iconv*-os2klibc.zip into /usr/local and add /usr/local/lib to your LIBPATH (or copy iconvl06.dll into your LIBPATH). Quick Help: iconv.exe ---------------------- quick help: iconv --help display iconv/libiconv version: iconv --version convert text encoding: iconv -f fromcode -t tocode srcfile >destfile (ex: convert utf8-text to CP932, a variant of Shift_JIS for/by Microsoft Windows) iconv -f UTF-8 -t CP932 NEWS.ja >NEWS.sjis list encodings supported by libiconv iconv -l How to Use libiconv (EMX version) --------------------------------- Specify the iconv library with option -l. gcc -Zmtd -o foo.exe foo.c -liconv will link iconv.dll with your app. (The libiconv is quite huge to be linked statically...) If you want not to use the forwarder iconv.dll, specify -liconv113 to link the iconv113.dll directly. (to avoid conflict between 'single-threaded runtime' emxlibcs.dll and 'multi- threaded runtime' emxlibcm.dll, you should specify option -Zmt on compiling and linking. -Zcrtdll will be need on linking if you want to get errno from iconv functions.) How to Use libiconv (kLIBC version) ----------------------------------- If you want to use GNU libiconv (instead of libc's builtin iconv), you should specify the include path for iconv.h. gcc -c -I/usr/local/include foo.c And specify the library path and (import) library of GNU libiconv on linking. gcc -Zmtd foo.o -L/usr/local/lib -liconv Don't forget your app will need the iconvl06.dll on your LIBPATH. Note for backward-compatibility (Genuine EMX version) ----------------------------------------------------- Older DLLs of GNU libiconv are available at following locations. ver 1.4 at http://www.sra.co.jp/people/akira/os2/libiconv/index.html (page missing. http://archive.org will help you...) ver 1.7 at http://homepage1.nifty.com/jsawa/os2/jpinfo.htm (in intl40.zip) ver 1.9.1 at http://hobbes.nmsu.edu/pub/os2/apps/wp/convert/wvware-1.0.0.zip (in wvware package) In ordinal numbers associated with exported symbols, these dlls have no consistent order with other version. When you make your app link with iconv.dll by using older import library (iconv.a or iconv.lib) in version 1.4, your app will lose up/downward compatibily. Older libraries use ordinal numbers when linking. | exported by ordinal | exported by name | 1.4 | 1.7 | 1.9.1 | 1.13.1 (iconv.dll) | -------------------+-----+-----+-------+-----------------------------------+ libiconv_open | 1 | 2 | 3 | 1 (fixed for compliance with 1.4) | libiconv_close | 3 | 3 | 4 | 3 (fixed for compliance with 1.4) | libiconvctl | 4 | 1 | 1 | 4 (fixed for compliance with 1.4) | libiconv | 2 | 7 | 10 | 2 (fixed for compliance with 1.4) | _libiconv_version | | 6 | 9 | ? (temporary value - not fixed) | locale_charset | | | 5 | ? (temporary value - not fixed) | libiconv_open_into | | | | ? (temporary value - not fixed) | -------------------+-----+-----+-------+-----------------------------------+ When your apps is linked with iconv.dll by using new iconv.a (or .lib), your app will import iconv.dll's symbol by name, not by ordinal. History ------- 2006-05-29 - libiconv 1.10 with 1.10-ja patch - kLIBC version: built with gcc 3.3.5 GA2 (libc06.dll) 2010-01-25 - libiconv 1.13.1 with 1.13-ja-1 patch - kLIBC version: built with gcc 4.4.2 - the directory of "charset.alias": same directroy of iconv(113|l06).dll - accept charset/encoding "SYSTEM" as default local encoding (current codepage: e.g. "CP437" under US-English codepage)