|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
9bd653f3
|
2022-02-07T23:30:46
|
|
Update NEWS.
* NEWS: Mention the EBCDIC encodings.
|
|
3acb1179
|
2020-04-04T14:58:34
|
|
Change the license of the library from LGPL 2.0 to LGPL 2.1.
|
|
f38356d4
|
2018-05-04T21:37:14
|
|
Simplify: Remove the ability to install a preloadable library.
|
|
0a04404c
|
2016-11-17T23:13:53
|
|
UTF-8: Reject surrogates and out-of-range code points.
|
|
40924a62
|
2016-10-14T03:18:05
|
|
Use 'size_t', not 'int', for the length of a string.
|
|
500b967b
|
2016-10-04T20:49:25
|
|
Extend CP1255 mapping.
|
|
3a33986e
|
2011-10-24T02:39:35
|
|
New encoding ISO-2022-CP-MS.
|
|
675ac2ff
|
2011-08-07T16:42:16
|
|
Version 1.14.
|
|
ac379c19
|
2011-08-07T04:54:14
|
|
Upgrade the GB18030 converter to the version from 2005.
|
|
33b05e19
|
2011-08-06T19:01:19
|
|
Fix conversion bug in CP1258 converter.
|
|
b918f35d
|
2011-07-03T17:43:06
|
|
Fix interactive behaviour of iconv program.
|
|
fd7d5707
|
2010-11-24T03:33:29
|
|
Implement newer release of BIG5-HKSCS.
|
|
2cf3ee65
|
2009-07-08T00:22:57
|
|
Fix an endless loop in the conversion to wchar_t.
|
|
459ce580
|
2009-01-24T23:16:06
|
|
New converter for CP1131.
|
|
bd6a5a3e
|
2008-09-17T01:17:15
|
|
Mention iconv_open_into().
|
|
bb8f7987
|
2008-09-07T23:28:41
|
|
More consistent behaviour when invalid input is preceded by a shift sequence.
|
|
bcb1081e
|
2008-04-06T07:38:02
|
|
Support system-dependent aliases.
|
|
d5777c95
|
2007-10-07T19:33:47
|
|
Mention the license upgrade.
|
|
5c0181b1
|
2007-06-30T21:45:55
|
|
Typo.
|
|
614f279f
|
2007-05-25T23:41:00
|
|
Add support for the Kazakh RK1048 encoding.
|
|
ed5a7ddc
|
2007-02-04T15:49:22
|
|
Add the Korean postal code mark to the EUC-KR and JOHAB mappings.
|
|
a4492a87
|
2006-12-20T13:35:38
|
|
Avoid a problem with setlocale() on AIX.
|
|
7edefe50
|
2006-05-18T12:48:00
|
|
Implement newer releases of BIG5-HKSCS.
|
|
422b3b1d
|
2006-01-23T13:25:49
|
|
New feature: character-dependent substitutions.
|
|
3a95ad61
|
2006-01-23T13:23:00
|
|
Accept long options.
|
|
e08e610f
|
2005-12-28T14:14:53
|
|
Extend GB18030 converter to cover the entire Unicode PUA.
|
|
0b8f69a5
|
2005-12-20T12:04:10
|
|
Add private area mappings to CP949.
|
|
b7709195
|
2005-12-15T12:53:32
|
|
Add private area mappings to CP950.
|
|
05a280da
|
2005-12-15T12:43:45
|
|
CP936 is now different from GBK.
|
|
c39e370c
|
2005-12-14T12:14:22
|
|
Add 5 irreversible mappings to the CP932 converter.
|
|
912d099a
|
2005-12-14T11:25:21
|
|
Include Euro sign.
|
|
cd4300ce
|
2005-07-25T12:02:53
|
|
Tidy up exported symbols.
|
|
47906fb0
|
2005-07-06T14:28:51
|
|
Portability to mingw.
|
|
38981e01
|
2005-05-23T10:06:44
|
|
Implement BIG5-2003 encoding.
|
|
c16f555c
|
2005-05-23T10:04:30
|
|
Add EURO SIGN to EUC-TW converter.
|
|
37a70626
|
2005-03-29T13:56:39
|
|
Rename libiconv_plug.so to preloadable_libiconv.so.
|
|
bb98761e
|
2005-03-29T13:55:27
|
|
Implement and document ATARIST converter.
|
|
e6c475ab
|
2004-07-22T12:50:01
|
|
New revision of ISO-8859-7.
|
|
7736228d
|
2004-07-22T12:49:09
|
|
New encoding ISO-8859-11.
|
|
24b960a3
|
2003-04-14T14:08:07
|
|
Support for relocatable installation.
|
|
5c844a41
|
2003-02-17T10:32:22
|
|
Enable recursive transliteration, with results depending on the target codeset.
|
|
df0d6366
|
2002-05-29T14:16:19
|
|
Oops.
|
|
3e7d32df
|
2002-05-29T16:00:38
|
|
Update for 1.8.
|
|
bed479f8
|
2002-05-29T14:13:44
|
|
Update.
|
|
f1b5561d
|
2002-05-21T12:53:40
|
|
Upgrade KSX1001 to 1998 version.
|
|
b4332637
|
2002-05-18T01:27:16
|
|
Write Shift_JIS instead of Shift-JIS.
|
|
275d176b
|
2002-05-06T10:21:29
|
|
Prepare for 1.8.
|
|
0e0ca652
|
2002-05-10T10:37:12
|
|
Say Woe32, not Win32.
|
|
dc5f739c
|
2002-01-16T12:22:10
|
|
New options -c, -s, -l.
|
|
cb29b348
|
2001-06-26T15:35:01
|
|
Update for release 1.7.
|
|
ac5c91d0
|
2001-06-26T15:08:13
|
|
Change handling of Yen sign and tilde in JISX encodings, for consistency
with glibc.
|
|
9d4c7e2e
|
2001-06-08T13:13:45
|
|
Update.
|
|
7cde6c1c
|
2001-05-21T12:28:48
|
|
GB18030 changes.
|
|
9a82fec0
|
2001-05-21T12:31:31
|
|
CP1258 handles combining characters.
|
|
d7e158e0
|
2001-05-21T12:32:48
|
|
CP1255 handles combining characters.
|
|
e91c0ce3
|
2001-04-12T12:55:41
|
|
Add UTF-32 encodings.
|
|
74426b18
|
2001-02-26T13:43:06
|
|
Update.
|
|
a0af28a7
|
2001-02-22T16:46:54
|
|
Update.
|
|
06aa1274
|
2001-01-05T13:52:21
|
|
Add support for CP862.
|
|
53dc1909
|
2000-11-20T18:35:24
|
|
Align the CP950 converter to the official tables.
|
|
d51d26bc
|
2000-11-20T18:33:47
|
|
Add support for locale dependent "char" and "wchar_t" encodings.
|
|
fdd8e49f
|
2000-11-20T18:26:50
|
|
Transliteration is now off by default.
|
|
875b6b71
|
2000-11-20T18:24:35
|
|
Document JOHAB again.
|
|
06522275
|
2000-10-24T12:24:00
|
|
An old typo.
|
|
8333237d
|
2000-10-23T14:20:07
|
|
Add support for GB18030 and BIG5HKSCS.
|
|
364bc09a
|
2000-09-22T12:26:23
|
|
Mention OS/2.
|
|
da1ff855
|
2000-03-15T20:22:04
|
|
Upgrade to libiconv-1.2.
|
|
6d93d60b
|
2000-04-17T17:18:14
|
|
Upgrade to libiconv-1.3.
|
|
c37afd43
|
2000-01-24T13:06:57
|
|
Upgrade to libiconv-1.1.
|
|
00e960fc
|
2000-01-04T21:56:56
|
|
Upgrade to libiconv-1.0.
|
|
3af9cd39
|
1999-12-31T12:50:49
|
|
Import from libiconv-0.3.
|