OSX) always include the _json_c_strerror function but only enable it with a flag
during tests.
json_visit.c \
linkhash.c \
printbuf.c \
- random_seed.c
-
-if ENABLE_STRERROR_OVERRIDE
-libjson_cinclude_HEADERS+= \
- strerror_override.h
-libjson_c_la_SOURCES+= \
+ random_seed.c \
strerror_override.c
-endif
distclean-local:
-rm -rf $(testsubdir)
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable])
fi
-AC_ARG_ENABLE(strerror-override,
- AS_HELP_STRING([--enable-strerror-override],
- [Override strerror() function with internal version.]),
-[if test x$enableval = xyes; then
- enable_strerror_override=yes
- AC_DEFINE(ENABLE_STRERROR_OVERRIDE, 1, [Override strerror() with internal version])
-fi])
-
-AM_CONDITIONAL([ENABLE_STRERROR_OVERRIDE], [test "x$enable_strerror_override" = "xyes"])
-
-if test "x$enable_strerror_override" = "xyes"; then
- AC_MSG_RESULT([Overriding `strerror()` function with internal version])
-else
- AC_MSG_RESULT([Using libc's `strerror()` function])
-fi
-
# enable silent build by default
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+#define STERROR_OVERRIDE_IMPL 1
#include "strerror_override.h"
/*
{ 0, (char *)0 }
};
+// Enabled during tests
+int _json_c_strerror_enable = 0;
+
#define PREFIX "ERRNO="
static char errno_buf[128] = PREFIX;
char *_json_c_strerror(int errno_in)
char digbuf[20];
int ii, jj;
+ if (!_json_c_strerror_enable)
+ return strerror(errno_in);
+
// Avoid standard functions, so we don't need to include any
// headers, or guess at signatures.
-#ifndef __STRERROR_OVERRIDE_H__
-#define __STRERROR_OVERRIDE_H__
+#ifndef _json_strerror_override_h_
+#define _json_strerror_override_h_
#include "config.h"
#include <errno.h>
-#if ENABLE_STRERROR_OVERRIDE
char *_json_c_strerror(int errno_in);
+
+#ifndef STRERROR_OVERRIDE_IMPL
#define strerror _json_c_strerror
#endif
-#endif /* __STRERROR_OVERRIDE_H__ */
+#endif /* _json_strerror_override_h_ */
#include "strerror_override.h"
+#include "strerror_override_private.h"
#include <assert.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
+ _json_c_strerror_enable = 1;
+
test_example_get();
test_recursion_get();
test_wrong_inputs_get();
#include "strerror_override.h"
+#include "strerror_override_private.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
// json_object_to_file(file, obj);
// json_object_to_file_ext(file, obj, flags);
+ _json_c_strerror_enable = 1;
+
const char *testdir;
if (argc < 2)
{