summaryrefslogtreecommitdiff
path: root/inputmethod
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2022-04-10 07:59:29 +0000
committernia <nia@pkgsrc.org>2022-04-10 07:59:29 +0000
commitc9dd76d41e46f82f348377a39d647a0b45660591 (patch)
tree4aa8be4f435f7374240180e5992d8b51bcc59a82 /inputmethod
parent5482ca0c0b62a9b1210b531b4e24f7f9dc993a05 (diff)
downloadpkgsrc-c9dd76d41e46f82f348377a39d647a0b45660591.tar.gz
fcitx5-libthai: fix building on netbsd-9
Diffstat (limited to 'inputmethod')
-rw-r--r--inputmethod/fcitx5-libthai/distinfo3
-rw-r--r--inputmethod/fcitx5-libthai/patches/patch-src_iconvwrapper.cpp37
2 files changed, 39 insertions, 1 deletions
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 <fcitx-utils/utf8.h>
+ #include <iconv.h>
+
++#if defined(__NetBSD__)
++#include <sys/param.h>
++#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<uint8_t> IconvWrapper::tryCo
+ result.resize(s.size() * 10);
+ size_t byteLength = s.size();
+ size_t byteRemains = result.size();
+- char *data = const_cast<char *>(s.data());
+ char *outData = reinterpret_cast<char *>(result.data());
++#if (defined(__NetBSD__) && !NETBSD_POSIX_ICONV) || defined(__sun)
++ auto err = iconv(conv, s.data(), &byteLength, &outData, &byteRemains);
++#else
++ char *data = const_cast<char *>(s.data());
+ auto err = iconv(conv, &data, &byteLength, &outData, &byteRemains);
++#endif
+ if (err == static_cast<size_t>(-1)) {
+ continue;
+ }