It looks to me like Mac OS is returning EOPNOTSUPP when it should
return EILSEQ. Would you mind trying the following patch?
diff --git a/src/libpspp/i18n.c b/src/libpspp/i18n.c
index 5e9aa0d59c..7697ac614c 100644
--- a/src/libpspp/i18n.c
+++ b/src/libpspp/i18n.c
@@ -214,6 +215,7 @@ try_recode (struct converter *cvtr, char fallbackchar,
return out - 1 - out_;
case EILSEQ:
+ case EOPNOTSUPP:
if (outbytes == 0)
return -E2BIG;
if (!fallbackchar)
On Sat, Nov 4, 2023 at 11:53 AM Friedrich Beckmann
<[email protected]> wrote:
>
> Hi Ben,
>
> pspp uses the native iconv library from Apple on MacOS. Apple has changed
> that library from MacOS 13 to MacOS 14. As a result the returned error codes
> seem different. That is the reason why the test "convert invalid UTF-8 to
> ISO-8859-1“ fails on MacOS 14. The problem is discussed here:
>
> https://github.com/fredowski/homebrew-pspp/issues/5#issuecomment-1793464558
>
> I made a patch to disable that test on MacOS such that the regression will
> work again on MacOS 14. I hope until Apple fixes the iconv library.
>
> Cheers
>
> Fritz