From: Bruno Haible <bruno@clisp.org>
Date: Fri, 10 Jul 2020 07:51:52 +0000 (+0200)
Subject: unicodeio: Fix wrong result on NetBSD.
X-Git-Tag: v1.0~3890
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=e888c3d554a74818d5546032f047593018923fc8;p=gnulib.git

unicodeio: Fix wrong result on NetBSD.

* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
characters also on NetBSD.
---

diff --git a/ChangeLog b/ChangeLog
index 556fb53525..3737892191 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2020-07-10  Bruno Haible  <bruno@clisp.org>
+
+	unicodeio: Fix wrong result on NetBSD.
+	* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
+	characters also on NetBSD.
+
 2020-07-09  Bruno Haible  <bruno@clisp.org>
 
 	unicodeio: Fix wrong result on Solaris 11.
diff --git a/lib/unicodeio.c b/lib/unicodeio.c
index 81fe0ddbf9..b616e3d61f 100644
--- a/lib/unicodeio.c
+++ b/lib/unicodeio.c
@@ -134,9 +134,10 @@ unicode_to_mb (unsigned int code,
 # if !defined _LIBICONV_VERSION && (defined sgi || defined __sgi)
           || (res > 0 && code != 0 && outptr - outbuf == 1 && *outbuf == '\0')
 # endif
-          /* Solaris 11 iconv() inserts a '?' if it cannot convert. */
-# if !defined _LIBICONV_VERSION && defined __sun
-          || (res > 0 && code != 0 && outptr - outbuf == 1 && *outbuf == '?')
+          /* NetBSD iconv() and Solaris 11 iconv() insert a '?' if they cannot
+             convert.  */
+# if !defined _LIBICONV_VERSION && (defined __NetBSD__ || defined __sun)
+          || (res > 0 && outptr - outbuf == 1 && *outbuf == '?')
 # endif
          )
         return failure (code, NULL, callback_arg);