From 007889b4128e8656c55ba31404a698e98719c262 Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@mobatime.cz> Date: 周六, 14 7月 2018 01:57:31 +0800 Subject: [PATCH] Fix license wordings to correspond with BSD-2-Clause --- libscpi/inc/scpi/config.h | 202 ++++++++++++++++++++++++++++---------------------- 1 files changed, 114 insertions(+), 88 deletions(-) diff --git a/libscpi/inc/scpi/config.h b/libscpi/inc/scpi/config.h index 6371bb0..70e4097 100644 --- a/libscpi/inc/scpi/config.h +++ b/libscpi/inc/scpi/config.h @@ -1,28 +1,29 @@ /*- - * Copyright (c) 2012-2013 Jan Breuer, + * BSD 2-Clause License * - * All Rights Reserved + * Copyright (c) 2012-2018, Jan Breuer + * All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. + * modification, are permitted provided that the following conditions are met: * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** @@ -40,6 +41,8 @@ #ifdef __cplusplus extern "C" { #endif + +#include "cc.h" #ifdef SCPI_USER_CONFIG #include "scpi_user_config.h" @@ -89,6 +92,16 @@ #define USE_USER_ERROR_LIST 0 #endif +#ifndef USE_DEVICE_DEPENDENT_ERROR_INFORMATION +#define USE_DEVICE_DEPENDENT_ERROR_INFORMATION SYSTEM_TYPE +#endif + +#if USE_DEVICE_DEPENDENT_ERROR_INFORMATION +#ifndef USE_MEMORY_ALLOCATION_FREE +#define USE_MEMORY_ALLOCATION_FREE 1 +#endif +#endif + #ifndef USE_COMMAND_TAGS #define USE_COMMAND_TAGS 1 #endif @@ -109,8 +122,8 @@ #define USE_UNITS_ANGLE SYSTEM_TYPE #endif -#ifndef USE_UNITS_PARICLES -#define USE_UNITS_PARICLES SYSTEM_TYPE +#ifndef USE_UNITS_PARTICLES +#define USE_UNITS_PARTICLES SYSTEM_TYPE #endif #ifndef USE_UNITS_DISTANCE @@ -157,66 +170,6 @@ #define USE_UNITS_ELECTRIC_CHARGE_CONDUCTANCE SYSTEM_TYPE #endif -/* Compiler specific */ -/* RealView/Keil ARM Compiler, e.g. Cortex-M CPUs */ -#if defined(__CC_ARM) -#define HAVE_STRNLEN 0 -#define HAVE_STRNCASECMP 1 -#define HAVE_STRNICMP 0 -#endif - -/* National Instruments (R) CVI x86/x64 PC platform */ -#if defined(_CVI_) -#define HAVE_STRNLEN 0 -#define HAVE_STRNCASECMP 0 -#define HAVE_STRNICMP 1 -#define HAVE_STDBOOL 0 -#endif - -/* 8bit PIC - PIC16, etc */ -#if defined(_MPC_) -#define HAVE_STRNLEN 0 -#define HAVE_STRNCASECMP 0 -#define HAVE_STRNICMP 1 -#endif - -/* PIC24 */ -#if defined(__C30__) -#define HAVE_STRNLEN 0 -#define HAVE_STRNCASECMP 0 -#define HAVE_STRNICMP 0 -#endif - -/* PIC32mx */ -#if defined(__C32__) -#define HAVE_STRNLEN 0 -#define HAVE_STRNCASECMP 1 -#define HAVE_STRNICMP 0 -#endif - -/* AVR libc */ -#if defined(__AVR__) -#include <stdlib.h> -#define HAVE_DTOSTRE 1 -#endif - -/* ======== test strnlen ======== */ -#ifndef HAVE_STRNLEN -#define HAVE_STRNLEN 1 -#endif -/* ======== test strncasecmp ======== */ -#ifndef HAVE_STRNCASECMP -#define HAVE_STRNCASECMP 1 -#endif -/* ======== test strnicmp ======== */ -#ifndef HAVE_STRNICMP -#define HAVE_STRNICMP 0 -#endif - -#ifndef HAVE_STDBOOL -#define HAVE_STDBOOL 1 -#endif - /* define local macros depending on existance of strnlen */ #if HAVE_STRNLEN #define SCPIDEFINE_strnlen(s, l) strnlen((s), (l)) @@ -234,21 +187,94 @@ #endif #if HAVE_DTOSTRE -#define SCPIDEFINE_floatToStr(v, s, l) strlen(dtostre((double)(v), (s), 6, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE)) +#define SCPIDEFINE_floatToStr(v, s, l) dtostre((double)(v), (s), 6, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE) #elif USE_CUSTOM_DTOSTRE -#define SCPIDEFINE_floatToStr(v, s, l) strlen(SCPI_dtostre((v), (s), (l), 6, 0)) -#else +#define SCPIDEFINE_floatToStr(v, s, l) SCPI_dtostre((v), (s), (l), 6, 0) +#elif HAVE_SNPRINTF #define SCPIDEFINE_floatToStr(v, s, l) snprintf((s), (l), "%g", (v)) +#else +#define SCPIDEFINE_floatToStr(v, s, l) SCPI_dtostre((v), (s), (l), 6, 0) #endif #if HAVE_DTOSTRE -#define SCPIDEFINE_doubleToStr(v, s, l) strlen(dtostre((v), (s), 15, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE)) +#define SCPIDEFINE_doubleToStr(v, s, l) dtostre((v), (s), 15, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE) #elif USE_CUSTOM_DTOSTRE -#define SCPIDEFINE_doubleToStr(v, s, l) strlen(SCPI_dtostre((v), (s), (l), 15, 0)) -#else +#define SCPIDEFINE_doubleToStr(v, s, l) SCPI_dtostre((v), (s), (l), 15, 0) +#elif HAVE_SNPRINTF #define SCPIDEFINE_doubleToStr(v, s, l) snprintf((s), (l), "%.15lg", (v)) +#else +#define SCPIDEFINE_doubleToStr(v, s, l) SCPI_dtostre((v), (s), (l), 15, 0) #endif +#if USE_DEVICE_DEPENDENT_ERROR_INFORMATION + + #if USE_MEMORY_ALLOCATION_FREE + #include <stdlib.h> + #include <string.h> + #define SCPIDEFINE_DESCRIPTION_MAX_PARTS 2 + #if HAVE_STRNDUP + #define SCPIDEFINE_strndup(h, s, l) strndup((s), (l)) + #else + #define SCPIDEFINE_strndup(h, s, l) OUR_strndup((s), (l)) + #endif + #define SCPIDEFINE_free(h, s, r) free((s)) + #else + #define SCPIDEFINE_DESCRIPTION_MAX_PARTS 3 + #define SCPIDEFINE_strndup(h, s, l) scpiheap_strndup((h), (s), (l)) + #define SCPIDEFINE_free(h, s, r) scpiheap_free((h), (s), (r)) + #define SCPIDEFINE_get_parts(h, s, l1, s2, l2) scpiheap_get_parts((h), (s), (l1), (s2), (l2)) + #endif +#else + #define SCPIDEFINE_DESCRIPTION_MAX_PARTS 1 + #define SCPIDEFINE_strndup(h, s, l) NULL + #define SCPIDEFINE_free(h, s, r) +#endif + +#if HAVE_SIGNBIT + #define SCPIDEFINE_signbit(n) signbit(n) +#else + #define SCPIDEFINE_signbit(n) ((n)<0) +#endif + +#if HAVE_FINITE + #define SCPIDEFINE_isfinite(n) finite(n) +#elif HAVE_ISFINITE + #define SCPIDEFINE_isfinite(n) isfinite(n) +#else + #define SCPIDEFINE_isfinite(n) (!SCPIDEFINE_isnan((n)) && ((n) < INFINITY) && ((n) > -INFINITY)) +#endif + +#if HAVE_STRTOF + #define SCPIDEFINE_strtof(n, p) strtof((n), (p)) +#else + #define SCPIDEFINE_strtof(n, p) strtod((n), (p)) +#endif + +#if HAVE_STRTOLL + #define SCPIDEFINE_strtoll(n, p, b) strtoll((n), (p), (b)) + #define SCPIDEFINE_strtoull(n, p, b) strtoull((n), (p), (b)) +#else + #define SCPIDEFINE_strtoll(n, p, b) strtoll((n), (p), (b)) + #define SCPIDEFINE_strtoull(n, p, b) strtoull((n), (p), (b)) + extern long long int strtoll(const char *nptr, char **endptr, int base); + extern unsigned long long int strtoull(const char *nptr, char **endptr, int base); + /* TODO: implement OUR_strtoll and OUR_strtoull */ + /* #warning "64bit string to int conversion not implemented" */ +#endif + +#if HAVE_ISNAN + #define SCPIDEFINE_isnan(n) isnan((n)) +#else + #define SCPIDEFINE_isnan(n) ((n) != (n)) +#endif + +#ifndef NAN + #define NAN (0.0 / 0.0) +#endif + +#ifndef INFINITY + #define INFINITY (1.0 / 0.0) +#endif #ifdef __cplusplus } -- Gitblit v1.9.1