diff options
author | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
commit | 1f457376b478257b88d4a857f5ec1b6155442dd7 (patch) | |
tree | 2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4mai8di32.c | |
parent | ac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff) |
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4mai8di32.c')
-rw-r--r-- | support/dktools/dk4mai8di32.c | 69 |
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; +} + |