NEWS

Branch


Log

Author Commit Date CI Message
Bruno Haible 9f28054d 2024-12-15T12:52:18 Implement the //NON_IDENTICAL_DISCARD suffix from POSIX:2024. * include/iconv.h.in (ICONV_GET_DISCARD_INVALID, ICONV_SET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL, ICONV_SET_DISCARD_NON_IDENTICAL): New macros. * lib/converters.h (struct conv_struct): Change type of discard_ilseq to 'unsigned int'. (DISCARD_INVALID, DISCARD_UNCONVERTIBLE): New macros. * lib/iconv.c (iconv_open, iconv_open_into): Change type of discard_ilseq to 'unsigned int'. (iconvctl): Implement ICONV_GET_DISCARD_INVALID, ICONV_SET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL, ICONV_SET_DISCARD_NON_IDENTICAL. Change the implementation of ICONV_GET_DISCARD_ILSEQ, ICONV_SET_DISCARD_ILSEQ to test/set both bits. * lib/iconv_open1.h: Update comment. Recognize //NON_IDENTICAL_DISCARD. * lib/iconv_open2.h: Update comment. * lib/loop_unicode.h (mb_to_uc_write_replacement): Test the DISCARD_UNCONVERTIBLE bit of discard_ilseq. (unicode_loop_convert): Test the respective bit of discard_ilseq. (unicode_loop_reset): Test the DISCARD_UNCONVERTIBLE bit of discard_ilseq. * lib/loop_wchar.h (wchar_from_loop_convert, wchar_to_loop_convert): Test the DISCARD_INVALID bit of discard_ilseq. * man/iconv_open.3: Mention the //NON_IDENTICAL_DISCARD suffix. Mark as conforming to POSIX:2024. * man/iconv.3: Likewise. * man/iconv_close.3: Mark as conforming to POSIX:2024. * man/iconv.1: Likewise. * man/iconvctl.3: Document ICONV_GET_DISCARD_INVALID, ICONV_SET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL, ICONV_SET_DISCARD_NON_IDENTICAL. Revise the description of ICONV_GET_DISCARD_ILSEQ, ICONV_SET_DISCARD_ILSEQ. * tests/test-discard.c (test_default, test_translit, test_ignore, test_ignore_translit): Test also the ICONV_GET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL accessors. (test_nid, test_nid_translit, test_invd, test_invd_translit): New functions. (main): Add test cases with //NON_IDENTICAL_DISCARD suffix. * NEWS: Mention the change.
Bruno Haible ef2f457f 2024-12-15T10:37:13 Support multiple suffixes in iconv_open, like glibc does. * lib/iconv_open1.h: Use a loop when looking for the common suffixes. * tests/test-discard.c: New file. * tests/Makefile.in (check): Run test-discard. (test-discard, test-discard.@OBJEXT@): New targets. (clean): Remove test-discard. (SOURCE_FILES): Add test-discard.c. * NEWS: Mention the change.
Bruno Haible 3782f302 2024-12-14T13:03:31 Add transliteration of Emojis. Suggested by Colin Leroy-Mira <colin@colino.net> in <https://savannah.gnu.org/bugs/index.php?64046>. * lib/translit.def: Add transliterations from glibc's fix of <https://sourceware.org/bugzilla/show_bug.cgi?id=30649>. * NEWS: Mention it.
Bruno Haible a4c1470b 2024-12-13T23:55:13 Distinguish byte-order state and shift-state. Reported by Tomas Kalibera <tomas.kalibera@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2024-12/msg00000.html>. * lib/converters.h (struct conv_struct): Add field 'ibyteorder'. * lib/iconv_open2.h: Initialize the ibyteorder field. * lib/ucs2.h (ucs2_mbtowc): Use the ibyteorder field instead of the istate field. * lib/ucs4.h (ucs4_mbtowc): Likewise. * lib/utf16.h (utf16_mbtowc): Likewise. * lib/utf32.h (utf32_mbtowc): Likewise. * tests/test-bom-state.c: New file. * tests/Makefile.in (check): Run test-bom-state. (test-bom-state, test-bom-state.@OBJEXT@): New targets. (clean): Remove test-bom-state. (SOURCE_FILES): Add test-bom-state.c. * NEWS: Mention the change.
Bruno Haible 5448df58 2023-05-29T13:59:43 GB18030: Help transitioning away from PUA code points. * lib/gb18030ext.h (gb18030_2005_ext_wctomb): Remove function. (gb18030ext_wctomb): Renamed from gb18030_2022_ext_wctomb. * lib/gb18030uni.h (gb18030_2005_uni_wctomb): Map 6 Ext-B code points to 4-bytes sequences. (gb18030_2022_uni_wctomb): Small refactoring. * lib/gb18030_2005.h (gb18030_2005_pua2charset): Map 6 PUA code points to 4-bytes sequences instead of 2-bytes sequences. (gb18030_2005_wctomb): Update accordingly. Invoke gb18030ext_wctomb instead of gb18030_2005_ext_wctomb. * lib/gb18030_2022.h (gb18030_2022_wctomb): Invoke gb18030ext_wctomb instead of gb18030_2022_ext_wctomb. * tests/GB18030-2005.IRREVERSIBLE.TXT: Update the inverse mappings of 6 Ext-B code points and 6 PUA code points. * NEWS: Mention it.
Bruno Haible 6549d20c 2023-05-21T00:29:37 Implement GB18030 version 2022. * lib/encodings.def (GB18030): Add alias GB18030:2005. (GB18030:2022): New encoding. * lib/gb18030ext.h (gb18030_2005_ext_2uni_pagefe): Renamed from gb18030ext_2uni_pagefe. (gb18030_2022_ext_2uni_pagefe): New array. (gb18030_2005_ext_mbtowc): Renamed from gb18030ext_mbtowc. (gb18030_2022_ext_mbtowc): New function. (gb18030_2005_ext_wctomb): Renamed from gb18030ext_wctomb. (gb18030_2022_ext_wctomb): New function. * lib/gb18030uni.h (gb18030_2022_charset2uni_pua1, gb18030_2022_charset2uni_pua2): New arrays. (gb18030_2005_uni_mbtowc): Renamed from gb18030uni_mbtowc. (gb18030_2022_uni_mbtowc): New function. (gb18030_2022_uni2charset_pua1, gb18030_2022_uni2charset_pua2): New arrays. (gb18030_2005_uni_wctomb): Renamed from gb18030uni_wctomb. (gb18030_2022_uni_wctomb): New function. * lib/gb18030_2005.h: Renamed from lib/gb18030.h. Update comments. (gb18030_2005_mbtowc): Renamed from gb18030_mbtowc. (gb18030_2005_pua2charset): Renamed from gb18030_pua2charset. (gb18030_2005_wctomb): Renamed from gb18030_wctomb. * lib/gb18030_2022.h: New file, based on lib/gb18030_2005.h. * lib/converters.h: Don't include gb18030.h. Include gb18030_2005.h, gb18030_2022.h. * lib/Makefile.in (SOURCE_FILES): Remove gb18030.h. Add gb18030_2005.h, gb18030_2022.h. * tests/GB18030-2005-BMP.TXT: Renamed from tests/GB18030-BMP.TXT. * tests/GB18030-2005.IRREVERSIBLE.TXT: Renamed from tests/GB18030.IRREVERSIBLE.TXT. * tests/GB18030-2022-BMP.TXT: New file. * tests/Makefile.in (check): Test GB18030:2005 instead of GB18030. Also test GB18030:2022. (clean): Don't remove GB18030.TXT. Instead, remove GB18030-2005.TXT and GB18030-2022.TXT. (SOURCE_FILES): Update. Add GB18030-2022-BMP.TXT. * README: Mention the new encoding. * man/iconv_open.3: Likewise. * NEWS: Likewise.
Bruno Haible af375a34 2023-05-12T22:50:18 Integrate the last change. * src/Makefile.in (SOURCE_FILES): Add zos-tag.h. * tests/Makefile.in (SOURCE_FILES): Add check-tag. * NEWS: Mention the new functionality.
Bruno Haible 19b6af5e 2023-04-03T04:12:01 Allow overriding the newline conversion for EBCDIC encodings. Reported by Mike Fulton <mikefultonpersonal@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-04/msg00009.html>. * include/iconv.h.in (ICONV_SURFACE_NONE, ICONV_SURFACE_EBCDIC_ZOS_UNIX): New macros. (ICONV_GET_FROM_SURFACE, ICONV_SET_FROM_SURFACE, ICONV_GET_TO_SURFACE, ICONV_SET_TO_SURFACE): New macros. * lib/converters.h (struct conv_struct): Add the fields isurface, osurface. (swap_x15_x25): New macro. * lib/iconv.c (iconv_open, iconv_open_into): Add local variables from_surface, to_surface. (ALL_SURFACES): New macro. (iconvctl): Adjust ICONV_TRIVIALP implementation. Implement the ICONV_{GET,SET}_{FROM,TO}_SURFACE requests. * lib/iconv_open1.h: Parse a /ZOS_UNIX surface specifier. Set from_surface, to_surface. * lib/iconv_open2.h: Copy the values of from_surface, to_surface into the conversion descriptor. * lib/ebcdic*.h (*_mbtowc): Test the isurface. If requested, call swap_x15_x25 right after fetching an input byte. (*_wctomb): Test the osurface. If requested, call swap_x15_x25 right before storing an output byte. * man/iconvctl.3 (REQUEST VALUES): Document the ICONV_{GET,SET}_{FROM,TO}_SURFACE requests. * src/iconv.c (main): If ICONV_EBCDIC_ZOS_UNIX is set, set the from/to surfaces accordingly. * man/iconv.1 (ENVIRONMENT): New section. * tests/check-ebcdic: New file. * tests/Makefile.in (check): Invoke it. (SOURCE_FILES): Add it. * NEWS: Mention the new functionality.
Bruno Haible 02abfbed 2023-04-01T00:56:53 Add some transliterations for mathematical symbols. Based on <https://sourceware.org/bugzilla/show_bug.cgi?id=23132> and the translit_neutral change in <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=513aaa0d782f8fae36732d06ca59d658149f0139>. Reported by Mike Fulton <mikefultonpersonal@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-03/msg00002.html>. * lib/translit.def: Add a couple of transliterations in the range U+27C0..U+29FF. * NEWS: Mention it.
Bruno Haible 9bd653f3 2022-02-07T23:30:46 Update NEWS. * NEWS: Mention the EBCDIC encodings.
Bruno Haible 3acb1179 2020-04-04T14:58:34 Change the license of the library from LGPL 2.0 to LGPL 2.1.
Bruno Haible f38356d4 2018-05-04T21:37:14 Simplify: Remove the ability to install a preloadable library.
Bruno Haible 0a04404c 2016-11-17T23:13:53 UTF-8: Reject surrogates and out-of-range code points.
Bruno Haible 40924a62 2016-10-14T03:18:05 Use 'size_t', not 'int', for the length of a string.
Bruno Haible 500b967b 2016-10-04T20:49:25 Extend CP1255 mapping.
Bruno Haible 3a33986e 2011-10-24T02:39:35 New encoding ISO-2022-CP-MS.
Bruno Haible 675ac2ff 2011-08-07T16:42:16 Version 1.14.
Bruno Haible ac379c19 2011-08-07T04:54:14 Upgrade the GB18030 converter to the version from 2005.
Bruno Haible 33b05e19 2011-08-06T19:01:19 Fix conversion bug in CP1258 converter.
Bruno Haible b918f35d 2011-07-03T17:43:06 Fix interactive behaviour of iconv program.
Bruno Haible fd7d5707 2010-11-24T03:33:29 Implement newer release of BIG5-HKSCS.
Bruno Haible 2cf3ee65 2009-07-08T00:22:57 Fix an endless loop in the conversion to wchar_t.
Bruno Haible 459ce580 2009-01-24T23:16:06 New converter for CP1131.
Bruno Haible bd6a5a3e 2008-09-17T01:17:15 Mention iconv_open_into().
Bruno Haible bb8f7987 2008-09-07T23:28:41 More consistent behaviour when invalid input is preceded by a shift sequence.
Bruno Haible bcb1081e 2008-04-06T07:38:02 Support system-dependent aliases.
Bruno Haible d5777c95 2007-10-07T19:33:47 Mention the license upgrade.
Bruno Haible 5c0181b1 2007-06-30T21:45:55 Typo.
Bruno Haible 614f279f 2007-05-25T23:41:00 Add support for the Kazakh RK1048 encoding.
Bruno Haible ed5a7ddc 2007-02-04T15:49:22 Add the Korean postal code mark to the EUC-KR and JOHAB mappings.
Bruno Haible a4492a87 2006-12-20T13:35:38 Avoid a problem with setlocale() on AIX.
Bruno Haible 7edefe50 2006-05-18T12:48:00 Implement newer releases of BIG5-HKSCS.
Bruno Haible 422b3b1d 2006-01-23T13:25:49 New feature: character-dependent substitutions.
Bruno Haible 3a95ad61 2006-01-23T13:23:00 Accept long options.
Bruno Haible e08e610f 2005-12-28T14:14:53 Extend GB18030 converter to cover the entire Unicode PUA.
Bruno Haible 0b8f69a5 2005-12-20T12:04:10 Add private area mappings to CP949.
Bruno Haible b7709195 2005-12-15T12:53:32 Add private area mappings to CP950.
Bruno Haible 05a280da 2005-12-15T12:43:45 CP936 is now different from GBK.
Bruno Haible c39e370c 2005-12-14T12:14:22 Add 5 irreversible mappings to the CP932 converter.
Bruno Haible 912d099a 2005-12-14T11:25:21 Include Euro sign.
Bruno Haible cd4300ce 2005-07-25T12:02:53 Tidy up exported symbols.
Bruno Haible 47906fb0 2005-07-06T14:28:51 Portability to mingw.
Bruno Haible 38981e01 2005-05-23T10:06:44 Implement BIG5-2003 encoding.
Bruno Haible c16f555c 2005-05-23T10:04:30 Add EURO SIGN to EUC-TW converter.
Bruno Haible 37a70626 2005-03-29T13:56:39 Rename libiconv_plug.so to preloadable_libiconv.so.
Bruno Haible bb98761e 2005-03-29T13:55:27 Implement and document ATARIST converter.
Bruno Haible e6c475ab 2004-07-22T12:50:01 New revision of ISO-8859-7.
Bruno Haible 7736228d 2004-07-22T12:49:09 New encoding ISO-8859-11.
Bruno Haible 24b960a3 2003-04-14T14:08:07 Support for relocatable installation.
Bruno Haible 5c844a41 2003-02-17T10:32:22 Enable recursive transliteration, with results depending on the target codeset.
Bruno Haible df0d6366 2002-05-29T14:16:19 Oops.
Bruno Haible 3e7d32df 2002-05-29T16:00:38 Update for 1.8.
Bruno Haible bed479f8 2002-05-29T14:13:44 Update.
Bruno Haible f1b5561d 2002-05-21T12:53:40 Upgrade KSX1001 to 1998 version.
Bruno Haible b4332637 2002-05-18T01:27:16 Write Shift_JIS instead of Shift-JIS.
Bruno Haible 275d176b 2002-05-06T10:21:29 Prepare for 1.8.
Bruno Haible 0e0ca652 2002-05-10T10:37:12 Say Woe32, not Win32.
Bruno Haible dc5f739c 2002-01-16T12:22:10 New options -c, -s, -l.
Bruno Haible cb29b348 2001-06-26T15:35:01 Update for release 1.7.
Bruno Haible ac5c91d0 2001-06-26T15:08:13 Change handling of Yen sign and tilde in JISX encodings, for consistency with glibc.
Bruno Haible 9d4c7e2e 2001-06-08T13:13:45 Update.
Bruno Haible 7cde6c1c 2001-05-21T12:28:48 GB18030 changes.
Bruno Haible 9a82fec0 2001-05-21T12:31:31 CP1258 handles combining characters.
Bruno Haible d7e158e0 2001-05-21T12:32:48 CP1255 handles combining characters.
Bruno Haible e91c0ce3 2001-04-12T12:55:41 Add UTF-32 encodings.
Bruno Haible 74426b18 2001-02-26T13:43:06 Update.
Bruno Haible a0af28a7 2001-02-22T16:46:54 Update.
Bruno Haible 06aa1274 2001-01-05T13:52:21 Add support for CP862.
Bruno Haible 53dc1909 2000-11-20T18:35:24 Align the CP950 converter to the official tables.
Bruno Haible d51d26bc 2000-11-20T18:33:47 Add support for locale dependent "char" and "wchar_t" encodings.
Bruno Haible fdd8e49f 2000-11-20T18:26:50 Transliteration is now off by default.
Bruno Haible 875b6b71 2000-11-20T18:24:35 Document JOHAB again.
Bruno Haible 06522275 2000-10-24T12:24:00 An old typo.
Bruno Haible 8333237d 2000-10-23T14:20:07 Add support for GB18030 and BIG5HKSCS.
Bruno Haible 364bc09a 2000-09-22T12:26:23 Mention OS/2.
Bruno Haible da1ff855 2000-03-15T20:22:04 Upgrade to libiconv-1.2.
Bruno Haible 6d93d60b 2000-04-17T17:18:14 Upgrade to libiconv-1.3.
Bruno Haible c37afd43 2000-01-24T13:06:57 Upgrade to libiconv-1.1.
Bruno Haible 00e960fc 2000-01-04T21:56:56 Upgrade to libiconv-1.0.
Bruno Haible 3af9cd39 1999-12-31T12:50:49 Import from libiconv-0.3.