PERFORCE change 173533 for review

Gabor Kovesdan gabor at FreeBSD.org
Fri Jan 22 19:35:01 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=173533

Change 173533 by gabor at gabor_aspire on 2010/01/22 19:33:14

	MFHg:
	
	LIBRARY
	=====================================================================
	- Support GNU-style alias listing via iconvlist(), while providing
	  the existing interfaces for unsorted listings
	- Fix a corrupted alias entry
	- Improved transliteration for the following encodings:
	  HP-ROMAN8 RISCOS-LATIN1 TCVN5712-1 TDS565
	  KZ-1048 MULELAO-1 NEXTSTEP GEORGIAN-ACADEMY GEORGIAN-PS
	  CP1256 CP1257 CP1258 CP1046 CP1124 CP1125 CP1129 CP1133 CP1161
	  CP1162 CP1163 CP1250 CP1252 CP1254 CP1255 CP864 CP865 CP869 CP874
	  CP922 CP856 CP857 CP858 CP860 CP861 CP862 CP863 CP437 CP737 CP775
	  CP850 CP852 CP853 CP855 JIS_X0201 JIS_X0208-1990 ATARIST KOI8-T
	- Fix //IGNORE implementation, which is actually the same as
	  __ICONV_F_HIDE_INVALID
	
	BIN
	=====================================================================
	- iconv: add long options
	- iconv: track file position with GNU hooks
	- iconv: use GNU-style listing and fallbacks instead of __iconv()
	  so that it can be compiled with the GNU library
	- iconv: add template for substitution options, which have not been
	  implemented yet
	- iconv: partial style(9)
	- iconv.h: provide more alternative libiconv*() names for
	  GNU compatibility
	- iconv.h: swap the aliasing order so that programs can be compiled
	  with this header for GNU libiconv; this might be handy for ports
	- iconv.h: increase iconv_allocation_t size to cover the space
	  needed for GNU libiconv
	
	DOCS
	=====================================================================
	- Document __iconv.3
	- Document iconv_open_into.3
	- Add MLINKS for __iconv.3
	- Add MLINKS for iconv_open_into.3
	
	REGRESSION-TES
	=====================================================================
	- gnu/posix: show error codes on fail
	- tablegen: add -i and -t switches to control //IGNORE and //TRANSLIT
	- tablegen: simplify code and provide niced output
	- tablegen: add support for generating tables between any two
	  encodings
	- tablegen: improve cmp.sh output

Affected files ...

.. //depot/projects/soc2009/gabor_iconv/extracted/include/iconv.h#4 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#9 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.c#7 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.c#7 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.c#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.h#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_template.h#7 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.3#7 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.c#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#9 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#8 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#7 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gnu/gnu.c#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/posix/posix.c#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ATARIST#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ATARIST-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-2003#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-2003-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-HKSCS#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-HKSCS-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/C99#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/C99-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1046#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1046-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1124#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1124-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1125#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1125-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1129#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1129-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1133#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1133-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1161#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1161-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1162#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1162-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1163#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1163-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1250#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1250-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1252#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1252-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1253#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1253-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1254#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1254-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1255#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1255-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1256#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1256-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1257#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1257-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1258#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1258-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP437#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP437-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP737#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP737-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP775#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP775-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP850#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP850-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP852#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP852-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP853#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP853-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP855#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP855-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP856#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP856-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP857#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP857-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP858#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP858-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP860#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP860-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP861#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP861-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP862#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP862-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP863#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP863-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP864#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP864-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP865#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP865-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP869#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP869-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP874#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP874-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP922#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP922-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP932#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP932-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP936#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP936-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP943#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP943-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP950#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP950-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/DEC-HANYU#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/DEC-HANYU-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JIS-2004#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JIS-2004-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-TW#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-TW-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-ACADEMY#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-ACADEMY-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-PS#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-PS-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HP-ROMAN8#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HP-ROMAN8-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HZ#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HZ-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-EXT#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-EXT-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-1#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-1-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2004#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2004-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-KR#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-KR-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-14#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-14-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-165#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-165-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-57#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-57-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JAVA#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JAVA-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0201#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0201-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0208-1990#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0208-1990-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JOHAB#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JOHAB-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-RU#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-RU-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-T#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-T-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KZ-1048#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KZ-1048-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/MULELAO-1#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/MULELAO-1-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/NEXTSTEP#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/NEXTSTEP-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/RISCOS-LATIN1#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/RISCOS-LATIN1-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TCVN5712-1#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TCVN5712-1-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TDS565#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TDS565-rev#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII-rev#3 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/cmp.sh#2 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/tablegen.c#5 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.1#8 edit
.. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.c#8 edit

Differences ...

==== //depot/projects/soc2009/gabor_iconv/extracted/include/iconv.h#4 (text+ko) ====

@@ -37,6 +37,11 @@
 #include <sys/cdefs.h>
 #include <sys/types.h>
 
+#define iconv_open		libiconv_open
+#define iconv_close		libiconv_close
+#define iconv			libiconv
+#define iconv_t			libiconv_t
+
 #ifdef	_BSD_SIZE_T_
 typedef	_BSD_SIZE_T_	size_t;
 #undef	_BSD_SIZE_T_
@@ -63,19 +68,16 @@
 /*
  * GNU interfaces for iconv
  */
+#define iconv_open_into		libiconv_open_into
+#define iconvctl		libiconvctl
+#define iconvlist		libiconvlist
 
-/* Historical versions */
-#define	libiconv_open		iconv_open
-#define libiconv_open_into	iconv_open_into
-#define libiconv_close		iconv_close
-#define libiconv		iconv
-
 /* We have iconvctl() */
 #define _LIBICONV_VERSION	0x0108
 extern  int _libiconv_version;
 
 typedef struct {
-	void	*spaceholder[8];
+	void	*spaceholder[64];
 } iconv_allocation_t;
 
 int	 iconv_open_into(const char *, const char *, iconv_allocation_t *);

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#9 (text+ko) ====

@@ -8,7 +8,9 @@
 		iconvlist.3 \
 		__iconv_get_list.3
 MLINKS=		iconv.3 iconv_open.3 \
+		iconv.3 iconv_open_into.3 \
 		iconv.3 iconv_close.3 \
+		iconv.3 __iconv.3 \
 		__iconv_get_list.3 __iconv_free_list.3
 SRCS=		citrus_bcs.c \
 		citrus_bcs_strtol.c \

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.c#7 (text+ko) ====

@@ -255,7 +255,7 @@
  *	get esdb entries.
  */
 int
-_citrus_esdb_get_list(char ***rlist, size_t *rnum, bool l)
+_citrus_esdb_get_list(char ***rlist, size_t *rnum, bool sorted)
 {
 	int ret;
 	struct _region key, data;
@@ -292,17 +292,19 @@
 
 	/* get alias entries */
 	while ((ret = _lookup_seq_next(cla, &key, &data)) == 0) {
-		if (!l)
-			snprintf(buf, sizeof(buf), "%.*s",
-				 (int)_region_size(&key),
-				 (const char *)_region_head(&key));
-		else
+		if (sorted)
 			snprintf(buf, sizeof(buf), "%.*s/%.*s",
 				 (int)_region_size(&data),
 				 (const char *)_region_head(&data),
 				 (int)_region_size(&key),
 				 (const char *)_region_head(&key));
-		_bcs_convert_to_lower(buf);
+		else
+			snprintf(buf, sizeof(buf), "%.*s/%.*s",
+			         (int)_region_size(&data),
+			         (const char *)_region_head(&data),
+			         (int)_region_size(&key),
+			         (const char *)_region_head(&key));
+		_bcs_convert_to_upper(buf);
 		list[num] = strdup(buf);
 		if (list[num] == NULL) {
 			ret = errno;
@@ -314,12 +316,12 @@
 		goto quit3;
 	/* get dir entries */
 	while ((ret = _lookup_seq_next(cld, &key, &data)) == 0) {
-		/* check duplicated entry */
-		if (!l)
+		if (!sorted) {
 			snprintf(buf, sizeof(buf), "%.*s",
-				 (int)_region_size(&key),
-				 (const char *)_region_head(&key));
-		else {
+			         (int)_region_size(&key),
+			         (const char *)_region_head(&key));
+		} else {
+			/* check duplicated entry */
 			char buf1[PATH_MAX];
 			char *p;
 
@@ -335,7 +337,7 @@
 				 (int)_region_size(&key),
 				 (const char *)_region_head(&key));
 		}
-		_bcs_convert_to_lower(buf);
+		_bcs_convert_to_upper(buf);
 		ret = _lookup_seq_lookup(cla, buf, NULL);
 		if (ret) {
 			if (ret != ENOENT)
@@ -353,6 +355,8 @@
 		goto quit3;
 
 	ret = 0;
+	/* XXX: why reallocing the list space posteriorly?
+	    shouldn't be done earlier? */
 	q = realloc(list, num * sizeof(char *));
 	if (!q) {
 		ret = ENOMEM;

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.c#7 (text+ko) ====

@@ -169,7 +169,6 @@
 	return (0);
 
 uc_to_mb_fail:
-/* XXX: currently unused
 	if ((fbs != NULL) && (fbs->uc_to_mb_fallback != NULL)) {
 		struct uc_to_mb_data	 convdata;
 
@@ -180,7 +179,6 @@
 		fbs->uc_to_mb_fallback((unsigned int)idx, uc_to_mb_replacement,
 		    (void *)&convdata, fbs->data);
 	}
-*/
 	return (ret);
 }
 
@@ -243,7 +241,6 @@
 	return (0);
 
 wc_to_mb_fail:
-/* XXX: currently unused
 	if ((fbs != NULL) && (fbs->wc_to_mb_fallback != NULL)) {
 		struct wc_to_mb_data	 convdata;
 		char			*ss = s;
@@ -258,7 +255,6 @@
 		fbs->wc_to_mb_fallback(wc, wc_to_mb_replacement,
 		    (void *)&convdata, fbs->data);
 	}
-*/
 	return (ret);
 }
 

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.c#2 (text+ko) ====

@@ -30,8 +30,6 @@
 
 #include "citrus_stdenc_fallbacks.h"
 
-/* XXX: these actually never used in latest GNU iconv but they might be
-        a future development option.
 void
 wc_to_mb_replacement(const char *buf __unused, size_t len __unused, void *cb_arg __unused)
 {
@@ -73,7 +71,6 @@
 	*convdata->outbytesleft -= len;
 	*convdata->err = 0;
 }
-*/
 
 void
 mb_to_uc_replacement(const unsigned int *buf __unused, size_t len __unused, void *cb_arg __unused)

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.h#2 (text+ko) ====

@@ -35,13 +35,9 @@
 #include "citrus_stdenc.h"
 #include "citrus_stdenc_local.h"
 
-/* XXX: these actually never used in latest GNU iconv but they might be
-        a future development option.
 void	 wc_to_mb_replacement(const char *, size_t, void *);
 void	 mb_to_wc_replacement(const wchar_t *, size_t, void *);
 void	 uc_to_mb_replacement(const char *, size_t, void *);
-*/
-
 void	 mb_to_uc_replacement(const unsigned int *, size_t, void *);
 
 struct mb_to_uc_data {
@@ -53,8 +49,6 @@
 	_citrus_stdenc_mbtocs_t	mbtouc;
 };
 
-/* XXX: these actually never used in latest GNU iconv but they might be  
-        a future development option.
 struct uc_to_mb_data {
 	char			**outbuf;
 	size_t			*outbytesleft;
@@ -75,5 +69,4 @@
 	size_t			*outbytesleft;
 	int			*err;
 };
-*/
 #endif

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_template.h#7 (text+ko) ====

@@ -166,7 +166,6 @@
 	if (ret == 0)
 		ret = _FUNCNAME(wcrtomb_priv)(_CE_TO_EI(ce), s, n, wc, _TO_STATE(ps),
 				       nresult);
-/* XXX: currently unused
 	if (ret != 0)
 		if ((fbs != NULL) && (fbs->uc_to_mb_fallback != NULL)) {
 			struct uc_to_mb_data	 convdata;
@@ -178,7 +177,6 @@
 			fbs->uc_to_mb_fallback((unsigned int)idx, uc_to_mb_replacement,
 			    (void *)&convdata, fbs->data);
 		}
-*/
 	return (ret);
 }
 
@@ -194,7 +192,6 @@
 
 	ret = _FUNCNAME(mbrtowc_priv)(_CE_TO_EI(ce), wc, s, n,
 				       _TO_STATE(ps), nresult);
-/* XXX: currently unused
 	if (ret != 0) {
 		if ((fbs != NULL) && (fbs->mb_to_wc_fallback != NULL)) {
 			struct mb_to_wc_data	 convdata;
@@ -208,7 +205,6 @@
 			    (void *)&convdata, fbs->data);
 		}
 	} else
-*/
 		if ((hooks != NULL) && (hooks->wc_hook != NULL))
 			hooks->wc_hook(*wc, hooks->data);
 	return (ret);
@@ -225,7 +221,6 @@
 
 	ret = _FUNCNAME(wcrtomb_priv)(_CE_TO_EI(ce), s, n, wc, _TO_STATE(ps),
 				       nresult);
-/* XXX: currently unused
 	if (ret != 0)
 		if ((fbs != NULL) && (fbs->wc_to_mb_fallback != NULL)) {
 			struct wc_to_mb_data	 convdata;
@@ -241,7 +236,6 @@
 			fbs->wc_to_mb_fallback(wc, wc_to_mb_replacement,
 			     (void *)&convdata, fbs->data);
 		}
-*/
 	return (ret);
 }
 

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.3#7 (text+ko) ====

@@ -1,6 +1,7 @@
 .\" $NetBSD: iconv.3,v 1.12 2004/08/02 13:38:21 tshiozak Exp $
 .\"
-.\" Copyright (c)2003 Citrus Project,
+.\" Copyright (c) 2003 Citrus Project,
+.\" Copyright (c) 2009, 2010 Gabor Kovesdan <gabor at FreeBSD.org>,
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,11 +25,12 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd August 1, 2004
+.Dd January 18, 2010
 .Dt ICONV 3
 .Os
 .Sh NAME
 .Nm iconv_open ,
+.Nm iconv_open_into ,
 .Nm iconv_close ,
 .Nm iconv
 .Nd codeset conversion functions
@@ -39,9 +41,13 @@
 .Ft iconv_t
 .Fn iconv_open "const char *dstname" "const char *srcname"
 .Ft int
+.Fn iconv_open_into "const char *dstname" "const char *srcname" "iconv_allocation_t *ptr"
+.Ft int
 .Fn iconv_close "iconv_t cd"
 .Ft size_t
 .Fn iconv "iconv_t cd" "const char ** restrict src" "size_t * restrict srcleft" "char ** restrict dst" "size_t * restrict dstleft"
+.Ft size_t
+.Fn __iconv "iconv_t cd" "const char ** restrict src" "size_t * restrict srcleft" "char ** restrict dst" "size_t * restrict dstleft" "uint32_t flags" "size_t invalids"
 .Sh DESCRIPTION
 The
 .Fn iconv_open
@@ -52,6 +58,24 @@
 and returns its descriptor.
 .Pp
 The
+.Fn iconv_open_into
+creates a conversion descriptor on a preallocated space.
+The
+.Ft iconv_allocation_t
+is used as a spaceholder type when allocating such space.
+The
+.Fa dstname
+and
+.Fa srcname
+arguments are the same as in the case of
+.Fn iconv_open .
+The
+.Fa ptr
+argument is a pointer of
+.Ft iconv_allocation_t
+to the preallocated space.
+.Pp
+The
 .Fn iconv_close
 function closes the specified converter
 .Fa cd .
@@ -118,7 +142,6 @@
 .Fn iconv :
 .Bl -tag -width 0123
 .It "src == NULL || *src == NULL"
-.\"
 If the source and/or destination codesets are stateful,
 .Fn iconv
 places these into their initial state.
@@ -147,6 +170,25 @@
 .Dv NULL .
 In this case, the shift sequence for the destination switching
 to the initial state is discarded.
+.Pp
+.El
+The
+.Fn __iconv
+function works just like
+.Fn iconv
+but if
+.Fn iconv
+fails, the invalid character count is lost there.
+This is a not bug rather a limitation of
+.St -p1003.1-2008 ,
+so
+.Fn __iconv
+is provided as an alternative but non-standard interface.
+It also has a flags argument, where currently the following
+flags can be passed:
+.Bl -tag -width 0123
+.It __ICONV_F_HIDE_INVALID
+Skip invalid characters, instead of returning with an error.
 .El
 .Sh RETURN VALUES
 Upon successful completion of
@@ -157,6 +199,13 @@
 returns (iconv_t)\-1 and sets errno to indicate the error.
 .Pp
 Upon successful completion of
+.Fn iconv_open_into ,
+it returns 0.
+Otherwise,
+.Fn iconv_open_into
+returns \-1, and sets errno to indicate the error.
+.Pp
+Upon successful completion of
 .Fn iconv_close ,
 it returns 0.
 Otherwise,
@@ -184,6 +233,16 @@
 and
 .Fa dstname .
 .El
+The
+.Fn iconv_open_into
+function may cause an error in the following cases:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+There is no converter specified by
+.Fa srcname
+and
+.Fa dstname .
+.El
 .Pp
 The
 .Fn iconv_close
@@ -222,16 +281,19 @@
 .Xr mkcsmapper 1 ,
 .Xr mkesdb 1
 .Sh STANDARDS
+The
 .Fn iconv_open ,
 .Fn iconv_close ,
 and
 .Fn iconv
-conform to
-.St -p1003.1-2001 .
-.Sh BUGS
-If
-.Fn iconv
-is aborted due to the occurrence of some error,
-the
-.Dq invalid conversion
-count mentioned above is unfortunately lost.
+functions conform to
+.St -p1003.1-2008 .
+.Pp
+The
+.Fn iconv_open_into
+function is a GNU-specific extension and it is not part of any standard,
+thus its use may break portability.
+The
+.Fn __iconv
+function is an own extension and it is not part of any standard,
+thus its use may break portability.

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.c#2 (text+ko) ====

@@ -40,9 +40,9 @@
 #include "netbsdism.h"
 
 #ifdef __weak_alias
-__weak_alias(iconv, _iconv)
-__weak_alias(iconv_open, _iconv_open)
-__weak_alias(iconv_close, _iconv_close)
+__weak_alias(libiconv, _iconv)
+__weak_alias(libiconv_open, _iconv_open)
+__weak_alias(libiconv_close, _iconv_close)
 #endif
 
 #include <sys/types.h>
@@ -108,13 +108,13 @@
 }
 
 iconv_t
-iconv_open(const char *out, const char *in)
+libiconv_open(const char *out, const char *in)
 {
 	return _iconv_open(out, in, NULL);
 }
 
 int
-iconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr)
+libiconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr)
 {
 	struct _citrus_iconv	*handle = (struct _citrus_iconv *)ptr;
 
@@ -122,7 +122,7 @@
 }
 
 int
-iconv_close(iconv_t handle)
+libiconv_close(iconv_t handle)
 {
 	if (ISBADF(handle)) {
 		errno = EBADF;
@@ -135,7 +135,7 @@
 }
 
 size_t
-iconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout)
+libiconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout)
 {
 	int err;
 	size_t ret;
@@ -182,11 +182,11 @@
 }
 
 int
-__iconv_get_list(char ***rlist, size_t *rsz, bool l)
+__iconv_get_list(char ***rlist, size_t *rsz, bool sorted)
 {
 	int ret;
 
-	ret = _citrus_esdb_get_list(rlist, rsz, l);
+	ret = _citrus_esdb_get_list(rlist, rsz, sorted);
 	if (ret) {
 		errno = ret;
 		return -1;
@@ -204,19 +204,57 @@
 /*
  * GNU-compatibile non-standard interfaces.
  */
+static int
+qsort_helper(const void *first, const void *second)
+{
+	const char * const *s1 = (const char * const *)first;
+	const char * const *s2 = (const char * const *)second;
+ 
+	return (strcmp(*s1, *s2));
+}
+
 void
-iconvlist(int (*do_one) (unsigned int, const char * const *,
+libiconvlist(int (*do_one) (unsigned int, const char * const *,
     void *), void *data)
 {
 	char		**list;
+	char		*curkey, *curitem, *slashpos;
+	char		**names;
 	size_t		 sz;
+	unsigned int	 i = 0, j;
+	const char * const *np;
 
 	if (__iconv_get_list(&list, &sz, true))
 		list = NULL;
-
-	const char * const *	names = (const char * const *)list;
-	unsigned int		i = sz;
-	do_one(i, names, data);
+	qsort((void *)list, sz, sizeof(char *), qsort_helper);
+	while (i < sz) {
+		j = 0;
+		slashpos = strchr(list[i], '/');
+		curkey = (char *)malloc(slashpos - list[i] + 2);
+		names = (char **)malloc(sz * sizeof(char *));
+		if ((curkey == NULL) || (names == NULL)) {
+			__iconv_free_list(list, sz);
+			return;
+		}
+		strlcpy(curkey, list[i], slashpos - list[i] + 1);
+		names[j++] = strdup(curkey);
+		for (; (i < sz) && (memcmp(curkey, list[i], strlen(curkey)) == 0); i++) {
+			slashpos = strchr(list[i], '/');
+			curitem = (char *)malloc(strlen(slashpos) + 1);
+			if (curitem == NULL) {
+				__iconv_free_list(list, sz);
+				return;
+			}
+			strlcpy(curitem, &slashpos[1], strlen(slashpos) + 1);
+			if (strcmp(curkey, curitem) == 0) {
+				continue;
+			}
+			names[j++] = strdup(curitem);
+		}
+		np = (const char * const *)names;
+		do_one(j, np, data);
+		free(names);
+	}
 
 	__iconv_free_list(list, sz);
 }
@@ -228,7 +266,7 @@
 }
 
 int
-iconvctl(iconv_t cd, int request, void *argument)
+libiconvctl(iconv_t cd, int request, void *argument)
 {
 	int			*i = (int *)argument;
 	struct iconv_hooks	*hooks = (struct iconv_hooks *)argument;

==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#9 (text+ko) ====

@@ -304,8 +304,7 @@
 static int
 /*ARGSUSED*/
 do_conv(const struct _citrus_iconv_std_shared *is,
-	_csid_t *csid, _index_t *idx,
-	bool discard_ilseq)
+	_csid_t *csid, _index_t *idx)
 {
 	_index_t tmpidx;
 	int ret;
@@ -327,8 +326,6 @@
 				case _MAPPER_CONVERT_SRC_MORE:
 					/*FALLTHROUGH*/
 				case _MAPPER_CONVERT_DST_MORE:
-					if (discard_ilseq)
-						continue;
 				case _MAPPER_CONVERT_ILSEQ:
 					return EILSEQ;
 				case _MAPPER_CONVERT_FATAL:
@@ -543,12 +540,13 @@
 			goto err;
 		}
 		/* convert the character */
-		ret = do_conv(is, &csid, &idx, cv->cv_shared->ci_discard_ilseq);
+		ret = do_conv(is, &csid, &idx);
 		if (ret) {
 			if (ret == E_NO_CORRESPONDING_CHAR) {
 				inval++;
 				szrout = 0;
-				if ((flags&_CITRUS_ICONV_F_HIDE_INVALID)==0 &&
+				if ((((flags & _CITRUS_ICONV_F_HIDE_INVALID) == 0)
+				    && !cv->cv_shared->ci_discard_ilseq) &&
 				    is->is_use_invalid) {
 					ret = wctombx(&sc->sc_dst_encoding,
 						      *out, *outbytes,

==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#8 (text+ko) ====

@@ -54,7 +54,7 @@
 	echo "# ${CODE}" > $@
 .for i in ${PART:S/:/@/}
 .for j in ${${CODE}_$i_aliases}
-	printf "%-32s%s\n" "$j" "${EPREFIX}${i:S/@/:/}" >> $@
+	printf "%-48s%s\n" "$j" "${EPREFIX}${i:S/@/:/}" >> $@
 .endfor
 .endfor
 	echo >> $@

==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#7 (text+ko) ====

@@ -142,10 +142,10 @@
 
 .endif
 
-GEN_FWD?=	${.CURDIR}/tablegen/tablegen
-GEN_REV?=	${.CURDIR}/tablegen/tablegen -r
-REF_FWD?=	${.CURDIR}/refgen/refgen
-REF_REV?=	${.CURDIR}/refgen/refgen -r
+GEN_FWD?=	${.CURDIR}/tablegen/tablegen -t
+GEN_REV?=	${.CURDIR}/tablegen/tablegen -tr
+REF_FWD?=	${.CURDIR}/refgen/refgen -t
+REF_REV?=	${.CURDIR}/refgen/refgen -tr
 CMP?=		${.CURDIR}/tablegen/cmp.sh
 
 make-ref: refgen

==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gnu/gnu.c#3 (text+ko) ====

@@ -271,7 +271,7 @@
 {
 	struct iconv_hooks	hooks;
 	iconv_t			cd;
-	const char		*s = "dwef23fwe";
+	const char		*s = "Hello World!";
 	const char		**inptr = &s;
 	size_t			inbytesleft, outbytesleft = 40;
 	char			*outbuf;
@@ -284,7 +284,7 @@
 	outptr = &outbuf;
 	inbytesleft = sizeof(s);
 
-	cd = iconv_open("Shift_JIS", "UTF-8");
+	cd = iconv_open("SHIFT_JIS", "ASCII");
 	if (cd == (iconv_t)-1)
 		return (-1);
 	if (iconvctl(cd, ICONV_SET_HOOKS, (void *)&hooks) != 0)
@@ -408,8 +408,10 @@
 static void
 test(int (tester) (void), const char * label)
 {
-	if (tester())
-		printf("%s failed\n", label);
+	int ret;
+
+	if (ret = tester())
+		printf("%s failed (%d)\n", label, ret);
 	else
 		printf("%s succeeded\n", label);
 }

==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/posix/posix.c#3 (text+ko) ====

@@ -244,8 +244,10 @@
 static void
 test(int (tester) (void), const char * label)
 {
-	if (tester())
-		printf("%s failed\n", label);
+	int	 ret;
+
+	if (ret = tester())
+		printf("%s failed (%d)\n", label, ret);
 	else
 		printf("%s succeeded\n", label);
 }

==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8#2 (text+ko) ====

@@ -1,254 +1,254 @@
-0x00 = 0x00000000
-0x01 = 0x00000001
-0x02 = 0x00000002
-0x03 = 0x00000003
-0x04 = 0x00000004
-0x05 = 0x00000005
-0x06 = 0x00000006
-0x07 = 0x00000007
-0x08 = 0x00000008
-0x09 = 0x00000009
-0x0A = 0x0000000A
-0x0B = 0x0000000B
-0x0C = 0x0000000C
-0x0D = 0x0000000D
-0x0E = 0x0000000E
-0x0F = 0x0000000F
-0x10 = 0x00000010
-0x11 = 0x00000011
-0x12 = 0x00000012
-0x13 = 0x00000013
-0x14 = 0x00000014
-0x15 = 0x00000015
-0x16 = 0x00000016
-0x17 = 0x00000017
-0x18 = 0x00000018
-0x19 = 0x00000019
-0x1A = 0x0000001A
-0x1B = 0x0000001B
-0x1C = 0x0000001C
-0x1D = 0x0000001D
-0x1E = 0x0000001E
-0x1F = 0x0000001F
-0x20 = 0x00000020
-0x21 = 0x00000021
-0x22 = 0x00000022
-0x23 = 0x00000023

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list