lib/loop_unicode.h

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 e310efbf 2024-12-14T17:00:22 Remove left-overs of preloadable library (removed in 1.16). * include/iconv.h.in: Remove LIBICONV_PLUG conditionals. * lib/iconv.c: Likewise. * lib/converters.h: Likewise. * lib/loop_unicode.h: Likewise. * lib/loop_wchar.h: Likewise. * lib/iconv_open2.h: Likewise.
Bruno Haible 91f96be0 2021-06-06T11:51:12 Change the license of the library from LGPL 2.0 to LGPL 2.1.
Bruno Haible 3acb1179 2020-04-04T14:58:34 Change the license of the library from LGPL 2.0 to LGPL 2.1.
Bruno Haible e54fc9c1 2018-09-17T18:28:56 Prefer https URLs where possible.
Bruno Haible 48f31c74 2012-02-12T20:54:51 Replace FSF snail-mail address with URL.
Bruno Haible bb8f7987 2008-09-07T23:28:41 More consistent behaviour when invalid input is preceded by a shift sequence.
Bruno Haible 4932ba96 2008-04-06T09:15:19 Avoid a gcc warning.
Bruno Haible 422b3b1d 2006-01-23T13:25:49 New feature: character-dependent substitutions.
Bruno Haible 45bd190c 2005-05-19T17:14:19 Update FSF postal address.
Bruno Haible 719d85b4 2005-03-14T11:24:40 Introduce iconv_hooks.
Bruno Haible 52999878 2003-04-16T10:09:08 Fix a transliteration bug.
Bruno Haible 5c844a41 2003-02-17T10:32:22 Enable recursive transliteration, with results depending on the target codeset.
Bruno Haible 12dbf71b 2002-05-06T10:21:11 Fix a bug in the CP1255, CP1258, TCVN decoders: The base characters of combining characters could be dropped at the end of the conversion buffer.
Bruno Haible cf2ecee5 2002-01-07T10:39:01 Fix a bug in transliteration.
Bruno Haible 4f99b68d 2002-01-15T12:47:34 Support for "iconv -c".
Bruno Haible 7c035296 2001-06-08T13:12:15 Handle Unicode 3.1 tag characters.
Bruno Haible db94e408 2001-05-25T19:21:53 Decouple the mbtowc and wctomb calling conventions.
Bruno Haible 19bb4fef 2001-05-26T00:31:46 The multibyte to Unicode conversion may now be stateful. Add Unicode normalization to multibyte to Unicode direction for CP1255, CP1258, TCVN.
Bruno Haible d5ac1c2b 2001-03-20T20:35:46 Update copyright notice.
Bruno Haible da1f6493 2001-02-05T19:36:41 Many more transliterations.
Bruno Haible a615528b 2000-11-23T19:54:07 Move src/ to lib/, and install the iconv program.