From dab0e53da15abd57bb7cd35c4fef59a1d39af17d Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Mon, 6 Jul 2020 09:59:13 +0200 Subject: Versionsinformationen hinzugefügt und Headerdatei etwas aufgeräumt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- csv.c | 26 +++++++++++++++++++++----- csv.h | 3 +++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/csv.c b/csv.c index 6bd157c..0e6e897 100644 --- a/csv.c +++ b/csv.c @@ -5,6 +5,8 @@ #include #include +// === Compiletimeoptions === + #ifndef CSV_DEFAULT_DELIMITER # define CSV_DEFAULT_DELIMITER '"' #endif @@ -13,7 +15,25 @@ # define CSV_DEFAULT_SEPARATOR ',' #endif -#if defined(__GNUC__) || defined(__clang__) +// === some usefull Makros === + +#define UNUSED(x) (void) (sizeof((x), 0)) // mark a parameter as 'unused' +#define STR(s) #s // Stringify a Makro +#define XSTR(s) STR(s) + +// === Version Information === + +#define CSV_VER_MAJOR 1 +#define CSV_VER_MINOR 0 +#define CSV_VER_PATCH 0 +#define CSV_VER_APPENDIX "-dev" + +// version information as described at semver.org +const char csv_version[] = XSTR(CSV_VER_MAJOR) "." XSTR(CSV_VER_MINOR) "." XSTR(CSV_VER_PATCH) CSV_VER_APPENDIX "\0" XSTR(__DATE__) "\0" XSTR(__TIME__); + +// === CSV-MEMORY Interface === + +#if ( (defined(__GNUC__) && __GNUC__ >= 5) || (defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))) ) # define mul_overflow __builtin_mul_overflow #else static inline int @@ -24,10 +44,6 @@ mul_overflow(size_t a, size_t b, size_t *out) } #endif -#define UNUSED(x) (void) (sizeof((x), 0)) - -// === CSV-MEMORY Interface === - static void * csv_mem_allocate(size_t n, size_t sz, void *cb_arg) { diff --git a/csv.h b/csv.h index bbfe150..44c6ff3 100644 --- a/csv.h +++ b/csv.h @@ -46,6 +46,9 @@ typedef struct { csv_field_t csv_field; } csv_t; +/* version */ +extern const char csv_version[]; + /* initialization */ void csv_init(csv_t *csv); void csv_init_opt(csv_t *csv, const csv_options_t *const csv_options); -- cgit v1.3