-----
* iconv_open() accepts any indicator suffix, such as ``//INVALID``.
-* iconv() returns EILSEQ when it ignores invalid input.
+ (This becomes illegal in the case of ``//NON_IDENTICAL_DISCARD``,
+ which is specified to do something.)
Non-conformance by implementation
================================
-Perhaps illegal, if my reading of POSIX 2024 is correct. But keep in
-mind that most of these implementations predate (this part of) POSIX.
+Probably illegal, if my reading of POSIX 2024 is correct.
glibc
-----
+* iconv() with ``//IGNORE`` returns EILSEQ when it hits invalid input,
+ but POSIX says "This shall not be treated as an error." This is is
+ closely related to `glibc bug 13541
+ <https://sourceware.org/bugzilla/show_bug.cgi?id=13541>`_.
+
* With no indicator suffixes, iconv() returns EILSEQ for valid but
- untranslatable sequences. This is documented in both glibc's
- documentation (charset.texi) and in the Linux man-pages iconv(3)
- page.
+ untranslatable sequences. This is `glibc bug 14008
+ <https://sourceware.org/bugzilla/show_bug.cgi?id=14008>`_ and `glibc
+ bug 31641
+ <https://sourceware.org/bugzilla/show_bug.cgi?id=31641>`_. It is
+ however documented in both glibc's documentation (charset.texi) and
+ in the Linux man-pages iconv(3) page.
* With ``//IGNORE``, untranslatable sequences still cause EILSEQ. This
- contradicts glibc's own documentation.
+ contradicts glibc's own documentation, and is closely related to
+ `glibc bug 13541
+ <https://sourceware.org/bugzilla/show_bug.cgi?id=13541>`_.
* iconv_open() accepts ``//NON_IDENTICAL_DISCARD`` but iconv() does
not implement it.