summaryrefslogtreecommitdiff
path: root/support/dktools/dk3maidd.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/dk3maidd.c
parentfdb18507cd80dc17f5a5256153d34668b4f4e61c (diff)
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk3maidd.c')
-rw-r--r--support/dktools/dk3maidd.c572
1 files changed, 0 insertions, 572 deletions
diff --git a/support/dktools/dk3maidd.c b/support/dktools/dk3maidd.c
deleted file mode 100644
index 774570e2f5..0000000000
--- a/support/dktools/dk3maidd.c
+++ /dev/null
@@ -1,572 +0,0 @@
-/*
-Copyright (C) 2014-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: dk3maidd.ctr
-*/
-
-/** @file dk3maidd.c The dk3maidd module.
-*/
-
-
-#line 223 "dk3maidd.ctr"
-
-#include "dk3ma.h"
-
-
-
-
-
-#line 229 "dk3maidd.ctr"
-
-
-#if DK3_CHAR_SIZE > 1
-/** Constant numeric values.
-*/
-static dk3_um_t const dk3maidd_um_array[] = {
-#if DK3_HAVE_LONG_LONG
- /* 0 */ (dk3_um_t)10ULL,
- /* 1 */ (dk3_um_t)1ULL,
- /* 2 */ (dk3_um_t)2ULL,
- /* 3 */ (dk3_um_t)3ULL,
- /* 4 */ (dk3_um_t)4ULL,
- /* 5 */ (dk3_um_t)5ULL,
- /* 6 */ (dk3_um_t)6ULL,
- /* 7 */ (dk3_um_t)7ULL,
- /* 8 */ (dk3_um_t)8ULL,
- /* 9 */ (dk3_um_t)9ULL,
- /* 10 */ (dk3_um_t)10ULL,
- /* 11 */ (dk3_um_t)11ULL,
- /* 12 */ (dk3_um_t)12ULL,
- /* 13 */ (dk3_um_t)13ULL,
- /* 14 */ (dk3_um_t)14ULL,
- /* 15 */ (dk3_um_t)15ULL,
- /* 16 */ (dk3_um_t)16ULL
-#else
- /* 0 */ (dk3_um_t)10UL,
- /* 1 */ (dk3_um_t)1UL,
- /* 2 */ (dk3_um_t)2UL,
- /* 3 */ (dk3_um_t)3UL,
- /* 4 */ (dk3_um_t)4UL,
- /* 5 */ (dk3_um_t)5UL,
- /* 6 */ (dk3_um_t)6UL,
- /* 7 */ (dk3_um_t)7UL,
- /* 8 */ (dk3_um_t)8UL,
- /* 9 */ (dk3_um_t)9UL,
- /* 10 */ (dk3_um_t)10UL,
- /* 11 */ (dk3_um_t)11UL,
- /* 12 */ (dk3_um_t)12UL,
- /* 13 */ (dk3_um_t)13UL,
- /* 14 */ (dk3_um_t)14UL,
- /* 15 */ (dk3_um_t)15UL,
- /* 16 */ (dk3_um_t)16UL
-#endif
-/* if DK3_HAVE_LONG_LONG */
-};
-#endif
-/* if DK3_CHAR_SIZE > 1 */
-
-
-#if DK3_CHAR_SIZE > 1
-/** Find start of text in string.
- @param str String to search for text.
- @return Pointer to start of text on success, NULL on error.
-*/
-static
-dkChar const *
-dk3maidd_str_start(dkChar const *str)
-{
- dkChar const *back = NULL;
- if (NULL != str) {
- back = str;
- while((dkT(' ') == *back) || (dkT('\t') == *back)) { back++; }
- switch(*back) {
- case dkT('\0'): case dkT('\n'): case dkT('\r'): {
- back = NULL;
- } break;
- }
- }
- return back;
-}
-#endif
-
-
-
-int
-dk3ma_um_from_string(dk3_um_t *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dkChar const *ptr = NULL; /* Current char to process */
- dk3_um_t val = DK3_UM_0; /* Value found */
- dk3_um_t op = DK3_UM_0; /* Operand to add */
- int mec = 0; /* Math error code */
- int back = 0; /* Function result */
- int found = 0; /* Flag: Digits found */
- int cc = 1; /* Flag: Can continue */
- int action = 0; /* Action to take */
-
-
-#line 316 "dk3maidd.ctr"
- if ((NULL != rp) && (NULL != src)) {
- ptr = dk3maidd_str_start(src);
- if (NULL != ptr) {
- while (0 != cc) {
- action = 0;
- switch(*(ptr++)) {
- case dkT('\0'): { /* End of string */
- cc = 0;
- if (0 != found) {
- back = 1;
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_SYNTAX; }
- }
- } break;
- case dkT('0'): {
- found = 1; action = 1; op = DK3_UM_0;
- } break;
- case dkT('1'): {
- found = 1; action = 1; op = dk3maidd_um_array[1];
- } break;
- case dkT('2'): {
- found = 1; action = 1; op = dk3maidd_um_array[2];
- } break;
- case dkT('3'): {
- found = 1; action = 1; op = dk3maidd_um_array[3];
- } break;
- case dkT('4'): {
- found = 1; action = 1; op = dk3maidd_um_array[4];
- } break;
- case dkT('5'): {
- found = 1; action = 1; op = dk3maidd_um_array[5];
- } break;
- case dkT('6'): {
- found = 1; action = 1; op = dk3maidd_um_array[6];
- } break;
- case dkT('7'): {
- found = 1; action = 1; op = dk3maidd_um_array[7];
- } break;
- case dkT('8'): {
- found = 1; action = 1; op = dk3maidd_um_array[8];
- } break;
- case dkT('9'): {
- found = 1; action = 1; op = dk3maidd_um_array[9];
- } break;
- default: { /* Non-digit */
- cc = 0;
- if (0 != found) {
- back = 1;
- }
- if (NULL != ec) { *ec = DK3_ERROR_SYNTAX; }
- } break;
- }
- if (0 != cc) {
- switch(action) {
- case 1: {
- val = dk3ma_um_add_ok(
- dk3ma_um_mul_ok(val, dk3maidd_um_array[0], &mec), op, &mec
- );
-
-#line 374 "dk3maidd.ctr"
- if (0 != mec) {
-
-#line 375 "dk3maidd.ctr"
- cc = 0;
- val = DK3_UM_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } break;
- }
- }
-
-#line 382 "dk3maidd.ctr"
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_SYNTAX; }
- }
- *rp = val;
-#if DK3_ON_WINDOWS
-
-
-#line 389 "dk3maidd.ctr"
-#else
-#if DK3_HAVE_INTMAX_T
-
-
-#line 392 "dk3maidd.ctr"
-#else
-#if DK3_HAVE_LONG_LONG
-
-
-#line 395 "dk3maidd.ctr"
-#else
-
-
-#line 397 "dk3maidd.ctr"
-#endif
-#endif
-#endif
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
-
-#line 403 "dk3maidd.ctr"
- return back;
-#else
- return (dk3ma_um_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_im_from_string(dk3_im_t *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dkChar const *ptr = NULL; /* Start of text */
- dk3_um_t umv = DK3_UM_0; /* Temporary value */
- dk3_im_t val = DK3_IM_0; /* Conversion result */
- int back = 0; /* Function result */
- if ((NULL != rp) && (NULL != src)) {
- ptr = dk3maidd_str_start(src);
- if (NULL != ptr) {
- if (dkT('-') == *ptr) {
- ptr++;
- if (0 != dk3ma_um_from_string(&umv, ptr, ec)) {
- if ((dk3_um_t)DK3_IM_MAX >= umv) {
- val = (dk3_im_t)umv;
- val = DK3_IM_0 - val;
- back = 1;
- } else {
- val = DK3_IM_MIN;
-#if VERSION_BEFORE_20140924
- if ((dk3_um_t)(DK3_IM_MAX + (dk3_im_t)1L) == umv)
-#else
- /* 2014-09-24: Fixed warning about integer overflow in constant.
- */
- if (((dk3_um_t)(DK3_IM_MAX) + (dk3_um_t)1UL) == umv)
-#endif
- {
- back = 1;
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- }
- } else {
- val = (dk3_im_t)umv;
- }
- } else {
- if (0 != dk3ma_um_from_string(&umv, ptr, ec)) {
- if ((dk3_um_t)DK3_IM_MAX >= umv) {
- val = (dk3_im_t)umv;
- back = 1;
- } else {
- val = DK3_IM_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- val = (dk3_im_t)umv;
- }
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_SYNTAX; }
- }
- *rp = val;
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_im_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_us_from_string(unsigned short *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_um_t val = DK3_UM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_um_from_string(&val, src, ec)) {
- if ((dk3_um_t)DK3_US_MAX >= val) {
- *rp = (unsigned short)val;
- back = 1;
- } else {
- *rp = DK3_US_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (unsigned short)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_us_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_s_from_string(short *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_im_t val = DK3_IM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_im_from_string(&val, src, ec)) {
- if (((dk3_im_t)DK3_S_MIN <= val) && ((dk3_im_t)DK3_S_MAX >= val)) {
- *rp = (short)val;
- back = 1;
- } else {
- if (DK3_IM_0 > val) { *rp = DK3_S_MIN; } else { *rp = DK3_S_MAX; }
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (short)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_s_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_ui_from_string(unsigned *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_um_t val = DK3_UM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_um_from_string(&val, src, ec)) {
- if ((dk3_um_t)DK3_U_MAX >= val) {
- *rp = (unsigned)val;
- back = 1;
- } else {
- *rp = DK3_U_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (unsigned)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_ui_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_i_from_string(int *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_im_t val = DK3_IM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_im_from_string(&val, src, ec)) {
- if (((dk3_im_t)DK3_I_MIN <= val) && ((dk3_im_t)DK3_I_MAX >= val)) {
- *rp = (int)val;
- back = 1;
- } else {
- if (DK3_IM_0 > val) { *rp = DK3_I_MIN; } else { *rp = DK3_I_MAX; }
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (int)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_i_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_ul_from_string(unsigned long *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_um_t val = DK3_UM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_um_from_string(&val, src, ec)) {
- if ((dk3_um_t)DK3_UL_MAX >= val) {
- *rp = (unsigned long)val;
- back = 1;
- } else {
- *rp = DK3_UL_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (unsigned long)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_ul_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_l_from_string(long *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_im_t val = DK3_IM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_im_from_string(&val, src, ec)) {
- if (((dk3_im_t)DK3_L_MIN <= val) && ((dk3_im_t)DK3_L_MAX >= val)) {
- *rp = (long)val;
- back = 1;
- } else {
- if (DK3_IM_0 > val) { *rp = DK3_L_MIN; } else { *rp = DK3_L_MAX; }
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (long)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_l_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-#if DK3_HAVE_LONG_LONG
-
-int
-dk3ma_ull_from_string(unsigned long long *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_um_t val = DK3_UM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_um_from_string(&val, src, ec)) {
- if ((dk3_um_t)DK3_ULL_MAX >= val) {
- *rp = (unsigned long long)val;
- back = 1;
- } else {
- *rp = DK3_ULL_MAX;
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (unsigned long long)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_ull_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_ll_from_string(long long *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_im_t val = DK3_IM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_im_from_string(&val, src, ec)) {
- if (((dk3_im_t)DK3_LL_MIN <= val) && ((dk3_im_t)DK3_LL_MAX >= val)) {
- *rp = (long long)val;
- back = 1;
- } else {
- if (DK3_IM_0 > val) { *rp = DK3_LL_MIN; } else { *rp = DK3_LL_MAX; }
- if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; }
- }
- } else {
- *rp = (long long)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_ll_from_c8_string(rp, src, ec));
-#endif
-}
-
-#endif
-
-#if DK3_HAVE_INTMAX_T
-
-int
-dk3ma_uintmax_t_from_string(uintmax_t *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_um_t val = DK3_UM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_um_from_string(&val, src, ec)) {
- *rp = (uintmax_t)val;
- back = 1;
- } else {
- *rp = (uintmax_t)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_uintmax_t_from_c8_string(rp, src, ec));
-#endif
-}
-
-
-
-int
-dk3ma_intmax_t_from_string(intmax_t *rp, dkChar const *src, int *ec)
-{
-#if DK3_CHAR_SIZE > 1
- dk3_im_t val = DK3_IM_0;
- int back = 0;
- if ((NULL != rp) && (NULL != src)) {
- if (0 != dk3ma_im_from_string(&val, src, ec)) {
- *rp = (intmax_t)val;
- back = 1;
- } else {
- *rp = (intmax_t)val;
- }
- } else {
- if (NULL != ec) { *ec = DK3_ERROR_INVALID_ARGS; }
- }
- return back;
-#else
- return (dk3ma_intmax_t_from_c8_string(rp, src, ec));
-#endif
-}
-
-#endif