From d0cfabba84d86cc8e840ea8cd448c4a32a0ed830 Mon Sep 17 00:00:00 2001 From: gitlost Date: Wed, 14 Sep 2022 14:48:57 +0100 Subject: [PATCH] common.h: define ZINT_IS_C89 as __STDC_VERSION__ not defined by MSVC zintconfig.h: edit generator file zintconfig.h.in --- backend/common.h | 12 ++++++++---- backend/tests/testcommon.c | 10 ++++------ backend/tests/testcommon.h | 4 ++-- backend/zintconfig.h | 2 +- backend/zintconfig.h.in | 9 +++++---- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/backend/common.h b/backend/common.h index a1c44fb6..3b7c7423 100644 --- a/backend/common.h +++ b/backend/common.h @@ -41,11 +41,16 @@ extern "C" { #define ARRAY_SIZE(x) ((int) (sizeof(x) / sizeof((x)[0]))) #endif +/* Determine if C89 (excluding MSVC, which doesn't define __STDC_VERSION__) */ +#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) +#define ZINT_IS_C89 +#endif + #ifdef _MSC_VER # include # define z_alloca(nmemb) _alloca(nmemb) #else -# if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) || defined(__NuttX__) /* C89 or NuttX RTOS */ +# if defined(ZINT_IS_C89) || defined(__NuttX__) /* C89 or NuttX RTOS */ # include # endif # define z_alloca(nmemb) alloca(nmemb) @@ -101,14 +106,13 @@ typedef unsigned __int64 uint64_t; #define ustrcat(target, source) strcat((char *) (target), (const char *) (source)) #define ustrncat(target, source, count) strncat((char *) (target), (const char *) (source), (count)) -/* VC6 or C89 */ -#if (defined(_MSC_VER) && _MSC_VER == 1200) || (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) +#if (defined(_MSC_VER) && _MSC_VER == 1200) || defined(ZINT_IS_C89) /* VC6 or C89 */ # define ceilf (float) ceil # define floorf (float) floor # define fmodf (float) fmod #endif /* `round()` (C99) not before MSVC 2013 (C++ 12.0) */ -#if (defined(_MSC_VER) && _MSC_VER < 1800) || (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) +#if (defined(_MSC_VER) && _MSC_VER < 1800) || defined(ZINT_IS_C89) # define round(arg) floor((arg) + 0.5) # define roundf(arg) floorf((arg) + 0.5f) #endif diff --git a/backend/tests/testcommon.c b/backend/tests/testcommon.c index 2cc44dc5..77a2a16b 100644 --- a/backend/tests/testcommon.c +++ b/backend/tests/testcommon.c @@ -34,24 +34,22 @@ /* Due to above: */ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "testcommon.h" - #ifdef _WIN32 #include #include #endif - -#include "../eci.h" #ifndef NO_PNG #include #include #include #endif #include -#include #include #include +#include "testcommon.h" +#include "../eci.h" + static int tests = 0; static int failed = 0; static int skipped = 0; @@ -63,7 +61,7 @@ static const char *testFunc = NULL; /* Visual C++ 6 doesn't support variadic args to macros, so make do with functions, which have inferior behaviour, e.g. don't exit on failure, `assert_equal()` type-specific */ -#if (defined(_MSC_VER) && _MSC_VER == 1200) || (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) /* VC6 or C89 */ +#if (defined(_MSC_VER) && _MSC_VER == 1200) || defined(ZINT_IS_C89) /* VC6 or C89 */ #include void assert_zero(int exp, const char *fmt, ...) { assertionNum++; diff --git a/backend/tests/testcommon.h b/backend/tests/testcommon.h index 507c86c5..3c4ae3c6 100644 --- a/backend/tests/testcommon.h +++ b/backend/tests/testcommon.h @@ -57,7 +57,7 @@ extern "C" { #define testutil_pclose(stream) _pclose(stream) #else #include -# if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L /* C89 */ +# if defined(ZINT_IS_C89) extern FILE *popen(const char *command, const char *type); extern int pclose(FILE *stream); # endif @@ -101,7 +101,7 @@ typedef struct s_testFunction { void testRun(int argc, char *argv[], testFunction funcs[], int funcs_size); int testContinue(const testCtx *const p_ctx, const int i); -#if (defined(_MSC_VER) &&_MSC_VER == 1200) || (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199000L) /* VC6 or C89 */ +#if (defined(_MSC_VER) &&_MSC_VER == 1200) || defined(ZINT_IS_C89) /* VC6 or C89 */ void assert_zero(int exp, const char *fmt, ...); void assert_nonzero(int exp, const char *fmt, ...); void assert_null(const void *exp, const char *fmt, ...); diff --git a/backend/zintconfig.h b/backend/zintconfig.h index dbeebfe3..493fcf49 100644 --- a/backend/zintconfig.h +++ b/backend/zintconfig.h @@ -1,4 +1,4 @@ -/* zintconfig.h - the configured options and settings for libzint */ +/* zintconfig.h - the configured options and settings for libzint, generated from "zintconfig.h.in" by CMake */ /* libzint - the open source barcode library Copyright (C) 2021-2022 Robin Stuart diff --git a/backend/zintconfig.h.in b/backend/zintconfig.h.in index 7f07fa75..3fd78c32 100644 --- a/backend/zintconfig.h.in +++ b/backend/zintconfig.h.in @@ -1,7 +1,7 @@ -/* zintconfig.h - the configured options and settings for libzint - +/* zintconfig.h - the configured options and settings for libzint, generated from "zintconfig.h.in" by CMake */ +/* libzint - the open source barcode library - Copyright (C) 2021 Robin Stuart + Copyright (C) 2021-2022 Robin Stuart Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -28,7 +28,7 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* vim: set ts=4 sw=4 et : */ +/* SPDX-License-Identifier: BSD-3-Clause */ #ifndef ZINTCONFIG_H #define ZINTCONFIG_H @@ -38,4 +38,5 @@ #define ZINT_VERSION_RELEASE @ZINT_VERSION_RELEASE@ #define ZINT_VERSION_BUILD @ZINT_VERSION_BUILD@ +/* vim: set ts=4 sw=4 et : */ #endif /* ZINTCONFIG_H */