summaryrefslogtreecommitdiff
path: root/support/dktools/dk4mai8di32.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
committerNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
commit1f457376b478257b88d4a857f5ec1b6155442dd7 (patch)
tree2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4mai8di32.c
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4mai8di32.c')
-rw-r--r--support/dktools/dk4mai8di32.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/support/dktools/dk4mai8di32.c b/support/dktools/dk4mai8di32.c
new file mode 100644
index 0000000000..26f073cd86
--- /dev/null
+++ b/support/dktools/dk4mai8di32.c
@@ -0,0 +1,69 @@
+/*
+Copyright (C) 2018-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: dk4mai8di32.ctr
+*/
+
+/** @file dk4mai8di32.c The dk4mai8di32 module.
+*/
+
+
+#line 82 "dk4mai8di32.ctr"
+
+#include "dk4conf.h"
+
+#if DK4_HAVE_ASSERT_H
+#ifndef ASSERT_H_INCLUDED
+#include <assert.h>
+#define ASSERT_H_INCLUDED 1
+#endif
+#endif
+
+#include "dk4mai8ddi.h"
+#include "dk4mai8di32.h"
+#include "dk4numco.h"
+
+
+
+int
+dk4ma_input_c8_dec_i32(
+ int32_t *rp,
+ const char *src,
+ const char **endptr,
+ int atg,
+ dk4_er_t *erp
+)
+{
+ dk4_im_t res;
+ int back = 0;
+#if DK4_USE_ASSERT
+ assert(NULL != rp);
+ assert(NULL != src);
+#endif
+ if (0 != dk4ma_input_c8_dec_dk4_im_t(&res, src, endptr, atg, erp)) {
+#if DK4_HAVE_INTMAX_T || DK4_HAVE_LONG_LONG || (DK4_SIZEOF_LONG > 4)
+ if (
+ ((dk4_im_t)(-1L - 0x7FFFFFFFL) <= res)
+ && (((dk4_im_t)(0x7FFFFFFFL)) >= res)
+ )
+ {
+ *rp = (int32_t)res;
+ back = 1;
+ } else {
+ dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
+ }
+#else
+ *rp = (int32_t)res;
+ back = 1;
+#endif
+ }
+ return back;
+}
+