mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
65 lines
1.5 KiB
Diff
65 lines
1.5 KiB
Diff
Fix:
|
|
|
|
error: expected value in expression
|
|
error: no matching constructor for initialization of 'const std::string' (aka 'const basic_string<char>')
|
|
|
|
https://github.com/kisli/vmime/issues/138
|
|
https://github.com/kisli/vmime/commit/8d3ea37b554d1a9f3d98d72eac1d8e539c223454
|
|
--- src/vmime/platforms/posix/posixSocket.cpp.orig
|
|
+++ src/vmime/platforms/posix/posixSocket.cpp
|
|
@@ -59,6 +59,32 @@
|
|
#endif
|
|
|
|
|
|
+// Workaround for detection of strerror_r variants
|
|
+#if VMIME_HAVE_STRERROR_R
|
|
+
|
|
+namespace
|
|
+{
|
|
+
|
|
+char* vmime_strerror_r_result(int /* res */, char* buf)
|
|
+{
|
|
+ // XSI-compliant prototype:
|
|
+ // int strerror_r(int errnum, char *buf, size_t buflen);
|
|
+ return buf;
|
|
+}
|
|
+
|
|
+char* vmime_strerror_r_result(char* res, char* /* buf */)
|
|
+{
|
|
+ // GNU-specific prototype:
|
|
+ // char *strerror_r(int errnum, char *buf, size_t buflen);
|
|
+ return res;
|
|
+}
|
|
+
|
|
+}
|
|
+
|
|
+#endif // VMIME_HAVE_STRERROR_R
|
|
+
|
|
+
|
|
+
|
|
namespace vmime {
|
|
namespace platforms {
|
|
namespace posix {
|
|
@@ -872,20 +898,7 @@ void posixSocket::throwSocketError(const int err)
|
|
#if VMIME_HAVE_STRERROR_R
|
|
|
|
char errbuf[512];
|
|
-
|
|
- #if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
|
|
-
|
|
- // XSI-compliant strerror_r()
|
|
- strerror_r(err, errbuf, sizeof(errbuf));
|
|
- throw exceptions::socket_exception(errbuf);
|
|
-
|
|
- #else
|
|
-
|
|
- // GNU-specific strerror_r()
|
|
- const std::string strmsg(strerror_r(err, errbuf, sizeof(errbuf)));
|
|
- throw exceptions::socket_exception(strmsg);
|
|
-
|
|
- #endif
|
|
+ throw exceptions::socket_exception(vmime_strerror_r_result(strerror_r(err, errbuf, sizeof(errbuf)), errbuf));
|
|
|
|
#else // !VMIME_HAVE_STRERROR_R
|
|
|