summaryrefslogtreecommitdiff
path: root/sysutils/rkdeveloptool/patches/patch-main.cpp
blob: 29df354bb529b528164526359311e1416a5d7170 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$NetBSD: patch-main.cpp,v 1.2 2019/10/25 10:10:10 kamil Exp $

match iconv(3) prototype

--- main.cpp.orig	2018-03-28 01:22:40.000000000 +0000
+++ main.cpp
@@ -15,6 +15,16 @@
 #include "RKComm.h"
 #include "RKDevice.h"
 #include "RKImage.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
+
 extern const char *szManufName[];
 CRKLog *g_pLogObject=NULL;
 CONFIG_ITEM_VECTOR g_ConfigItemVec;
@@ -168,7 +178,11 @@ bool StringToWideString(char *pszSrc, wc
 	pIn = (char *)pszSrc;
 	pOut = (char *)pszDest;
 
-	iRet = iconv(cd, (char **)&pIn, (size_t *)&nSrcLen, (char **)&pOut, (size_t *)&nDestLen);
+#if defined(__NetBSD__) && !NETBSD_POSIX_ICONV
+	iRet = iconv(cd, (const char **)&pIn, (size_t *)&nSrcLen, (char **)&pOut, (size_t *)&nDestLen);
+#else
+	iRet = iconv(cd, &pIn, (size_t *)&nSrcLen, (char **)&pOut, (size_t *)&nDestLen);
+#endif
 
 	if(iRet == -1) {
 		delete []pszDest;
@@ -205,7 +219,11 @@ bool WideStringToString(wchar_t *pszSrc,
 	char *pIn, *pOut;
 	pIn = (char *)pszSrc;
 	pOut = (char *)pszDest;
+#if defined(__NetBSD__) && !NETBSD_POSIX_ICONV
+	iRet = iconv(cd, (const char **)&pIn, (size_t *)&nSrcLen, (char **)&pOut, (size_t *)&nDestLen);
+#else
 	iRet = iconv(cd, (char **)&pIn, (size_t *)&nSrcLen, (char **)&pOut, (size_t *)&nDestLen);
+#endif
 
 	if(iRet == -1) {
 		delete []pszDest;