diff options
Diffstat (limited to 'support/dktools/dk4maiwdsz.ctr')
-rw-r--r-- | support/dktools/dk4maiwdsz.ctr | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/support/dktools/dk4maiwdsz.ctr b/support/dktools/dk4maiwdsz.ctr deleted file mode 100644 index 4574c912d2..0000000000 --- a/support/dktools/dk4maiwdsz.ctr +++ /dev/null @@ -1,272 +0,0 @@ -%% options - -copyright owner = Dirk Krause -copyright year = 2015-xxxx -SPDX-License-Identifier: BSD-3-Clause - - - -%% header - -/** @file - Retrieve size_t value from - wchar_t string in decimal notation. -*/ - -#ifndef DK4CONF_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4conf.h" -#else -#include <dktools-4/dk4conf.h> -#endif -#endif - -#ifndef DK4TYPES_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4types.h" -#else -#include <dktools-4/dk4types.h> -#endif -#endif - -#ifndef DK4ERROR_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4error.h" -#else -#include <dktools-4/dk4error.h> -#endif -#endif - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** Retrieve numeric value from string, decimal notation. - @param rp Pointer to result variable for the found value. - @param src String to check for numeric value. - In addition to the numeric value the string can - contain a suffix 'K', 'M', 'G', 'T', 'P', 'E', - 'Z' or 'Y' to indicate multiples of powers of 1024 - (kibibytes, mibibytes...). - Suffixes 'k', 'm', 'g', 't', 'p', 'e', 'z' or 'y' - indicate multiples of powers of 1000 - (kilobytes, megabytes...). - @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 in this - variable. - The variable points to the correct error position - only if er.ec is DK4_E_SYNTAX. - @param atg Allow trailing garbage: - 0=no unprocessable trailing bytes allowed, - 1=trailing whitespaces allowed, - 2=any trailing characters 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_MATH_OVERFLOW if the number is out of range, or - DK4_E_SYNTAX if src contains illegal characters. -*/ - -int -dk4ma_input_wc_dec_size_t( - size_t *rp, - const wchar_t *src, - const wchar_t **endptr, - int atg, - dk4_er_t *erp -); - - -/** Retrieve numeric value from string, decimal notation. - @param rp Pointer to result variable for the found value. - @param src String to check for numeric value. - No suffixes allowed. - @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 in this - variable. - The variable points to the correct error position - only if er.ec is DK4_E_SYNTAX. - @param atg Allow trailing garbage: - 0=no unprocessable trailing bytes allowed, - 1=trailing whitespaces allowed, - 2=any trailing characters 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_MATH_OVERFLOW if the number is out of range, or - DK4_E_SYNTAX if src contains illegal characters. -*/ - -int -dk4ma_input_wc_dec_size_t_simple( - size_t *rp, - const wchar_t *src, - const wchar_t **endptr, - int atg, - dk4_er_t *erp -); - -#ifdef __cplusplus -} -#endif - -%% module - -#include "dk4conf.h" - -#if DK4_HAVE_ASSERT_H -#ifndef ASSERT_H_INCLUDED -#include <assert.h> -#define ASSERT_H_INCLUDED 1 -#endif -#endif - -#include "dk4maiwddu.h" -#include "dk4maiwdui.h" -#include "dk4maiwdsz.h" -#include "dk4numco.h" -#include "dk4strw.h" - - - -int -dk4ma_input_wc_dec_size_t( - size_t *rp, - const wchar_t *src, - const wchar_t **endptr, - int atg, - dk4_er_t *erp -) -{ - const wchar_t *myend = NULL; - dk4_um_t um = (dk4_um_t)0UL; - size_t res = 0; - size_t xf = 1024; - size_t factor = 1; - size_t nloop = 0; - int back = 0; -#if DK4_USE_ASSERT - assert(NULL != rp); - assert(NULL != src); -#endif - if ((NULL != rp) && (NULL != src)) { - if (0 != dk4ma_input_wc_dec_dk4_um_t(&um, src, &myend, 2, erp)) { - if (((dk4_um_t)(SIZE_MAX)) >= um) { - res = (size_t)um; - if (NULL != myend) { - back = 1; - if (*myend <= (wchar_t)(0x00FFU)) { - switch ((int)(*myend)) { - case 'K': { nloop = 1; myend++; } break; - case 'M': { nloop = 2; myend++; } break; - case 'G': { nloop = 3; myend++; } break; - case 'T': { nloop = 4; myend++; } break; - case 'P': { nloop = 5; myend++; } break; - case 'E': { nloop = 6; myend++; } break; - case 'Z': { nloop = 7; myend++; } break; - case 'Y': { nloop = 8; myend++; } break; - case 'k': { nloop = 1; myend++; xf = 1000; } break; - case 'm': { nloop = 2; myend++; xf = 1000; } break; - case 'g': { nloop = 3; myend++; xf = 1000; } break; - case 't': { nloop = 4; myend++; xf = 1000; } break; - case 'p': { nloop = 5; myend++; xf = 1000; } break; - case 'e': { nloop = 6; myend++; xf = 1000; } break; - case 'z': { nloop = 7; myend++; xf = 1000; } break; - case 'y': { nloop = 8; myend++; xf = 1000; } break; - } - } - while (nloop--) { - if ((SIZE_MAX / xf) >= factor) { - factor *= xf; - } else { - back = 0; - dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW); - } - } - if (0 != back) { - if ((SIZE_MAX / factor) >= res) { - res *= factor; - switch (atg) { - case 2: { - *rp = res; - } break; - case 1: { - myend = dk4strw_start(myend, NULL); - if (NULL != myend) { - back = 0; - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } else { - *rp = res; - } - } break; - default: { - back = 0; - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } break; - } - } else { - back = 0; - dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW); - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW); - } - } else { - *rp = res; - back = 1; - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW); - } - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - if (NULL != endptr) { *endptr = myend; } - return back; -} - - - -int -dk4ma_input_wc_dec_size_t_simple( - size_t *rp, - const wchar_t *src, - const wchar_t **endptr, - int atg, - dk4_er_t *erp -) -{ - const wchar_t *myend = NULL; - dk4_um_t um = (dk4_um_t)0UL; - int back = 0; -#if DK4_USE_ASSERT - assert(NULL != rp); - assert(NULL != src); -#endif - if ((NULL != rp) && (NULL != src)) { - if (0 != dk4ma_input_wc_dec_dk4_um_t(&um, src, &myend, atg, erp)) { - if (((dk4_um_t)(SIZE_MAX)) >= um) { - *rp = (size_t)um; - back = 1; - } else { - dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW); - } - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - if (NULL != endptr) { *endptr = myend; } - return back; -} - |