#include <string.h>
#include <stdarg.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <ctype.h>
+
#ifdef _WIN32
#include <sec_api/stdlib_s.h> /* errno_t, size_t */
+#ifndef HAVE_GETENV_S_DECL
errno_t getenv_s(
size_t *ret_required_buf_size,
char *buf,
size_t buf_size_in_bytes,
const char *name
);
+#endif
+#ifndef HAVE_PUTENV_S_DECL
errno_t _putenv_s(
const char *varname,
const char *value_string
);
-
-/* XX: needed to get _putenv_s, getenv_s from stdlib.h with MinGW,
- * but only works on newer versions.
- * https://stackoverflow.com/a/51977723
- */
-/* #define MINGW_HAS_SECURE_API 1 */
#endif
-#include <stdlib.h>
-#include <errno.h>
-#include <ctype.h>
+#endif
#include "openconnect-internal.h"
system_pcsc_cflags=
AC_CHECK_TOOL([WINDRES], [windres], [])
AC_CHECK_TOOL([MAKENSIS], [makensis], [])
+
+ # MINGW_HAS_SECURE_API may only work on newer MinGW:
+ # https://stackoverflow.com/a/51977723
+ AC_DEFINE(MINGW_HAS_SECURE_API, 1, [Try to make getenv_s and _putenv_s available])
+ AC_CHECK_DECL(_putenv_s, [AC_DEFINE(HAVE_PUTENV_S_DECL, 1, [MinGW declares _putenv_s])], [], [#include <sec_api/stdlib_s.h>])
+ AC_CHECK_DECL(getenv_s, [AC_DEFINE(HAVE_GETENV_S_DECL, 1, [MinGW declares getenv_s])], [], [#include <sec_api/stdlib_s.h>])
;;
*darwin*)
system_pcsc_libs="-Wl,-framework -Wl,PCSC"