From c9dd76d41e46f82f348377a39d647a0b45660591 Mon Sep 17 00:00:00 2001 From: nia Date: Sun, 10 Apr 2022 07:59:29 +0000 Subject: fcitx5-libthai: fix building on netbsd-9 --- inputmethod/fcitx5-libthai/distinfo | 3 +- .../patches/patch-src_iconvwrapper.cpp | 37 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 inputmethod/fcitx5-libthai/patches/patch-src_iconvwrapper.cpp (limited to 'inputmethod') diff --git a/inputmethod/fcitx5-libthai/distinfo b/inputmethod/fcitx5-libthai/distinfo index ee68edae22a..5e63e6de1b2 100644 --- a/inputmethod/fcitx5-libthai/distinfo +++ b/inputmethod/fcitx5-libthai/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.3 2021/10/26 10:49:32 nia Exp $ +$NetBSD: distinfo,v 1.4 2022/04/10 07:59:29 nia Exp $ BLAKE2s (fcitx5-libthai-5.0.2.tar.xz) = cd53e04503c9d895a766ac3196995ccb61aa2db93fd3c28460e5577dde773a87 SHA512 (fcitx5-libthai-5.0.2.tar.xz) = 660ba7ec3142cc0d568a1af2d77659778ea83c0b3f1a9fd9ca5fe40969f9f2e41fd7cf66f9932cc6479c25d511f2553f6aedfff64950da7bfc06b92bb5100e63 Size (fcitx5-libthai-5.0.2.tar.xz) = 14556 bytes +SHA1 (patch-src_iconvwrapper.cpp) = 2856fdb143ef45e3aff65c83e74bda58381ae2ea diff --git a/inputmethod/fcitx5-libthai/patches/patch-src_iconvwrapper.cpp b/inputmethod/fcitx5-libthai/patches/patch-src_iconvwrapper.cpp new file mode 100644 index 00000000000..a4f170daf56 --- /dev/null +++ b/inputmethod/fcitx5-libthai/patches/patch-src_iconvwrapper.cpp @@ -0,0 +1,37 @@ +$NetBSD: patch-src_iconvwrapper.cpp,v 1.1 2022/04/10 07:59:29 nia Exp $ + +Fix building on NetBSD <=9 with non-POSIX iconv. + +--- src/iconvwrapper.cpp.orig 2020-12-11 07:57:11.364756600 +0000 ++++ src/iconvwrapper.cpp +@@ -9,6 +9,15 @@ + #include + #include + ++#if defined(__NetBSD__) ++#include ++#if __NetBSD_Prereq__(9,99,17) ++#define NETBSD_POSIX_ICONV 1 ++#else ++#define NETBSD_POSIX_ICONV 0 ++#endif ++#endif ++ + class IconvWrapperPrivate { + public: + IconvWrapperPrivate(iconv_t conv) : conv_(conv) {} +@@ -37,9 +46,13 @@ std::vector IconvWrapper::tryCo + result.resize(s.size() * 10); + size_t byteLength = s.size(); + size_t byteRemains = result.size(); +- char *data = const_cast(s.data()); + char *outData = reinterpret_cast(result.data()); ++#if (defined(__NetBSD__) && !NETBSD_POSIX_ICONV) || defined(__sun) ++ auto err = iconv(conv, s.data(), &byteLength, &outData, &byteRemains); ++#else ++ char *data = const_cast(s.data()); + auto err = iconv(conv, &data, &byteLength, &outData, &byteRemains); ++#endif + if (err == static_cast(-1)) { + continue; + } -- cgit v1.2.3