Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| d68ea07b | 2025-02-14 11:47:48 | Fix a buffer overrun in the GB18030 converter (regression 2023-05-29). Reported by Nick Wellnhofer <wellnhofer@aevum.de>. * lib/gb18030_2005.h (gb18030_2005_wctomb): Return RET_TOOSMALL if there is not enough room for 4 bytes. | ||
| 8d618a87 | 2024-12-15 12:56:32 | Prepare for version 1.18. * configure.ac: Bump version number to 1.18. * include/iconv.h.in (_LIBICONV_VERSION): Likewise. * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7. * src/iconv.c (print_version): Update copyright year. * windows/iconv.rc: Likewise. * windows/libiconv.rc: Likewise. * README: Update download link. | ||
| 9f28054d | 2024-12-15 12: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. | ||
| ef2f457f | 2024-12-15 10: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. | ||
| e310efbf | 2024-12-14 17: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. | ||
| 3782f302 | 2024-12-14 13: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. | ||
| a4c1470b | 2024-12-13 23: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. | ||
| f017cafc | 2024-10-22 12:28:36 | Spelling fixes. From Mike Taves <mwtoews@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2024-10/msg00002.html>. * NOTES: Fix grammar. * lib/iconv_open1.h: Fix a typo in comments. * lib/iso2022_jp2.h: Likewise. * lib/iso2022_jpms.h: Fix English spelling in comments. | ||
| eed6782c | 2024-10-05 02:24:01 | Fix undefined behaviour caused by shifting (unsigned char) << 24. Reported by Tim Sweet <tsweet64@protonmail.com> at <https://savannah.gnu.org/bugs/?66289>. * lib/ucs4.h (ucs4_mbtowc): Cast 'unsigned char' values to ucs4_t before shifting them to the left. * lib/ucs4be.h (ucs4be_mbtowc): Likewise. * lib/ucs4le.h (ucs4le_mbtowc): Likewise. * lib/utf32.h (utf32_mbtowc): Likewise. * lib/utf32be.h (utf32be_mbtowc): Likewise. * lib/utf32le.h (utf32le_mbtowc): Likewise. | ||
| 6ad5ae56 | 2023-09-16 12:04:24 | Fix a misnomer. * include/export.h (LIBICONV_SHLIB_EXPORTED): Renamed from LIBICONV_DLL_EXPORTED. Prefer the term "shared library", since the term "DLL" applies only to Windows. * Makefile.devel (include/iconv.h.build.in): Insert LIBICONV_SHLIB_EXPORTED instead of LIBICONV_DLL_EXPORTED. * configure.ac (DLL_VARIABLE): Update comment. * lib/Makefile.in (DEFS): Update comment. * woe32dll/export.h: Update comment. * libcharset/include/export.h (LIBCHARSET_SHLIB_EXPORTED): Renamed from LIBCHARSET_DLL_EXPORTED. Prefer the term "shared library", since the term "DLL" applies only to Windows. * libcharset/Makefile.devel (include/libcharset.h.build.in, include/localcharset.h.build.in): Insert LIBCHARSET_SHLIB_EXPORTED instead of LIBCHARSET_DLL_EXPORTED. * libcharset/lib/relocatable-stub.c (libcharset_set_relocation_prefix): Use LIBCHARSET_SHLIB_EXPORTED instead of LIBCHARSET_DLL_EXPORTED. * libcharset/lib/Makefile.in (DEFS): Update comment. * libcharset/Makefile.in (install-lib): Update comment. |