summaryrefslogtreecommitdiff
path: root/support/dktools/dk4mai8dbl.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
committerNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
commit0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch)
tree416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/dk4mai8dbl.c
parentfdb18507cd80dc17f5a5256153d34668b4f4e61c (diff)
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4mai8dbl.c')
-rw-r--r--support/dktools/dk4mai8dbl.c229
1 files changed, 0 insertions, 229 deletions
diff --git a/support/dktools/dk4mai8dbl.c b/support/dktools/dk4mai8dbl.c
deleted file mode 100644
index 42643e0e0f..0000000000
--- a/support/dktools/dk4mai8dbl.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-Copyright (C) 2015-2020, Dirk Krause
-SPDX-License-Identifier: BSD-3-Clause
-*/
-
-/*
- WARNING: This file was generated by the dkct program (see
- http://dktools.sourceforge.net/ for details).
- Changes you make here will be lost if dkct is run again!
- You should modify the original source and run dkct on it.
- Original source: dk4mai8dbl.ctr
-*/
-
-/** @file dk4mai8dbl.c The dk4mai8dbl module.
-*/
-
-
-#line 90 "dk4mai8dbl.ctr"
-
-#include "dk4conf.h"
-
-#if DK4_HAVE_ASSERT_H
-#ifndef ASSERT_H_INCLUDED
-#include <assert.h>
-#define ASSERT_H_INCLUDED 1
-#endif
-#endif
-
-#include "dk4mai8dbl.h"
-
-#include "dk4str8.h"
-
-#if DK4_HAVE_ERRNO_H
-#ifndef ERRNO_H_INCLUDED
-#include <errno.h>
-#define ERRNO_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_LOCALE_H
-#ifndef LOCALE_H_INCLUDED
-#include <locale.h>
-#define LOCALE_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_STDLIB_H
-#ifndef STDLIB_H_INCLUDED
-#include <stdlib.h>
-#define STDLIB_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_MATH_H
-#ifndef MATH_H_INCLUDED
-#if DK4_ON_WINDOWS
-#ifndef _USE_MATH_DEFINES
-#define _USE_MATH_DEFINES 1
-#endif
-#endif
-#include <math.h>
-#define MATH_H_INCLUDED 1
-#endif
-#endif
-
-
-
-/** Default locale to use.
-*/
-static const char locale_kw[] = { "C" };
-
-
-
-/** Read double value from char string.
- @param rp Address of result variable.
- @param src String to process.
- @param endptr Address of pointer variable.
- A pointer to the first character not processed
- is stored here. The function may also store
- a NULL pointer here.
- The pointer variable is probably left unchanged
- on errors or if strtod() is not available on your
- system (the sscanf() function is used as fallback).
- @param atg Allow trailing garbage:
- 0=no unprocessable trailing bytes allowed,
- 1=trailing whitespaces allowed,
- 2=any trailing characaters allowed.
- @param erp Error report, may be NULL.
- @return 1 on success, 0 on error.
-
- Error codes:
- DK4_E_INVALID_ARGUMENTS if rp or src is NULL,
- DK4_E_SYNTAX if there are unexpected characters in the
- string,
- DK4_E_MATH_OVERFLOW if a mathematical overflow occurs,
- DK4_E_MATH_UNDERFLOW if a mathematical underflow occurs.
-*/
-
-static
-int
-dk4ma_internal_input_c8_double(
- double *rp,
- const char *src,
- const char **endptr,
- int atg,
- dk4_er_t *erp
-)
-{
-#if DK4_HAVE_STRTOD || DK4_HAVE__STRTOD
- double val = 0.0;
- char *myend = NULL;
- int back = 0;
- int xerr = 0;
-#if DK4_USE_ASSERT
- assert(NULL != rp);
- assert(NULL != src);
-#endif
- if ((NULL != rp) && (NULL != src)) {
- errno = 0;
-#if DK4_HAVE_STRTOD
- val = strtod(src, &myend);
-#else
- val = _strtod(src, &myend);
-#endif
- xerr = errno;
- if (NULL != endptr) { *endptr = myend; }
- if (myend != src) {
- switch (atg) {
- case 2: {
- back = 1;
- } break;
- case 1: {
- if (NULL != dk4str8_start(myend, NULL)) {
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- } else {
- back = 1;
- }
- } break;
- default: {
- if ('\0' == *myend) {
- back = 1;
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- }
- } break;
- }
- if (1 == back) {
- if (ERANGE == xerr) {
- if (HUGE_VAL == val) {
- back = 0;
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
- if ((-HUGE_VAL) == val) {
- back = 0;
- dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
- }
- if (0.0 == val) {
- back = 0;
- dk4error_set_simple_error_code(erp, DK4_E_MATH_UNDERFLOW);
- }
- }
- }
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- }
- if (1 == back) {
- *rp = val;
- }
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- }
- return back;
-#else
-#if DK4_USE_PRINTF_SCANF
- double val = 0.0;
- int back = 0;
-#if DK4_USE_ASSERT
- assert(NULL != rp);
- assert(NULL != src);
-#endif
- if ((NULL != rp) && (NULL != src)) {
- if (1 == sscanf(src, "%lf", &val)) {
- *rp = val;
- back = 1;
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- }
- } else {
- dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
- }
- return back;
-#else
- dk4error_set_simple_error_code(erp, DK4_E_NOT_SUPPORTED);
- return 0;
-#endif
-#endif
-}
-
-
-
-int
-dk4ma_input_c8_double(
- double *rp,
- const char *src,
- const char **endptr,
- int atg,
- dk4_er_t *erp
-)
-{
-#if (DK4_HAVE_SETLOCALE) && defined(LC_NUMERIC)
- char *oldloc = NULL;
-#endif
- int back = 0;
-#if DK4_USE_ASSERT
- assert(NULL != rp);
- assert(NULL != src);
-#endif
-#if (DK4_HAVE_SETLOCALE) && defined(LC_NUMERIC)
- oldloc = setlocale(LC_NUMERIC, NULL);
- (void)setlocale(LC_NUMERIC, locale_kw);
- back = dk4ma_internal_input_c8_double(rp, src, endptr, atg, erp);
- (void)setlocale(LC_NUMERIC, oldloc);
-#else
- back = dk4ma_internal_input_c8_double(rp, src, endptr, atg, erp);
-#endif
- return back;
-}
-
-