summaryrefslogtreecommitdiff
path: root/support/dktools/dk4maiwdbl.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/dk4maiwdbl.c
parentfdb18507cd80dc17f5a5256153d34668b4f4e61c (diff)
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4maiwdbl.c')
-rw-r--r--support/dktools/dk4maiwdbl.c218
1 files changed, 0 insertions, 218 deletions
diff --git a/support/dktools/dk4maiwdbl.c b/support/dktools/dk4maiwdbl.c
deleted file mode 100644
index 6abe2c41a5..0000000000
--- a/support/dktools/dk4maiwdbl.c
+++ /dev/null
@@ -1,218 +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: dk4maiwdbl.ctr
-*/
-
-/** @file dk4maiwdbl.c The dk4maiwdbl module.
-*/
-
-
-#line 89 "dk4maiwdbl.ctr"
-
-
-#include "dk4conf.h"
-
-#if DK4_HAVE_ASSERT_H
-#ifndef ASSERT_H_INCLUDED
-#include <assert.h>
-#define ASSERT_H_INCLUDED 1
-#endif
-#endif
-
-#include "dk4maiwdbl.h"
-
-#include "dk4strw.h"
-
-#if DK4_HAVE_WCHAR_H
-#ifndef WCHAR_H_INCLUDED
-#include <wchar.h>
-#define WCHAR_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_ERRNO_H
-#ifndef ERRNO_H_INCLUDED
-#include <errno.h>
-#define ERRNO_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
-
-
-
-
-/** Locale setting to use when retrieving number.
-*/
-static const char locale_kw[] = { "C" };
-
-
-
-static
-int
-dk4ma_internal_input_wc_double(
- double *rp,
- const wchar_t *src,
- const wchar_t **endptr,
- int atg,
- dk4_er_t *erp
-)
-{
-#if DK4_HAVE_WCSTOD || DK4_HAVE__WCSTOD
- double val = 0.0;
- wchar_t *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_WCSTOD
- val = wcstod(src, &myend);
-#else
- val = _wcstod(src, &myend);
-#endif
- xerr = errno;
- if (NULL != endptr) { *endptr = myend; }
- if (myend != src) {
- switch (atg) {
- case 2: {
- back = 1;
- } break;
- case 1: {
- if (NULL != dk4strw_start(myend, NULL)) {
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- } else {
- back = 1;
- }
- } break;
- default: {
- if (L'\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);
- }
- }
- if (EINVAL == xerr) {
- if (0.0 == val) {
- back = 0;
- dk4error_set_simple_error_code(erp, DK4_E_SYNTAX);
- }
- }
- }
- } 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 == swscanf(src, L"%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_wc_double(
- double *rp,
- const wchar_t *src,
- const wchar_t **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_wc_double(rp, src, endptr, atg, erp);
- (void)setlocale(LC_NUMERIC, oldloc);
-#else
- back = dk4ma_internal_input_wc_double(rp, src, endptr, atg, erp);
-#endif
- return back;
-}
-