diff --git a/Makefile.am b/Makefile.am index 6f86525..8728ff0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -51,14 +51,8 @@ libjson_c_la_SOURCES = \ 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) diff --git a/configure.ac b/configure.ac index 7af60bf..bbaacf5 100644 --- a/configure.ac +++ b/configure.ac @@ -23,22 +23,6 @@ else 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])]) diff --git a/strerror_override.c b/strerror_override.c index 6cad0c0..ccabe97 100644 --- a/strerror_override.c +++ b/strerror_override.c @@ -1,3 +1,4 @@ +#define STERROR_OVERRIDE_IMPL 1 #include "strerror_override.h" /* @@ -52,6 +53,9 @@ static struct { { 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) @@ -60,6 +64,9 @@ 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. diff --git a/strerror_override.h b/strerror_override.h index 96e6bc6..48b29b3 100644 --- a/strerror_override.h +++ b/strerror_override.h @@ -1,12 +1,13 @@ -#ifndef __STRERROR_OVERRIDE_H__ -#define __STRERROR_OVERRIDE_H__ +#ifndef _json_strerror_override_h_ +#define _json_strerror_override_h_ #include "config.h" #include -#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_ */ diff --git a/tests/test_json_pointer.c b/tests/test_json_pointer.c index cc96ab9..97566e2 100644 --- a/tests/test_json_pointer.c +++ b/tests/test_json_pointer.c @@ -1,4 +1,5 @@ #include "strerror_override.h" +#include "strerror_override_private.h" #include #include #include @@ -280,6 +281,8 @@ static void test_wrong_inputs_set() int main(int argc, char **argv) { + _json_c_strerror_enable = 1; + test_example_get(); test_recursion_get(); test_wrong_inputs_get(); diff --git a/tests/test_util_file.c b/tests/test_util_file.c index b4918be..5a8a8a0 100644 --- a/tests/test_util_file.c +++ b/tests/test_util_file.c @@ -1,4 +1,5 @@ #include "strerror_override.h" +#include "strerror_override_private.h" #include #include #include @@ -114,6 +115,8 @@ int main(int argc, char **argv) // 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) {