summaryrefslogtreecommitdiff
path: root/support/dktools/dk4maasz.ctr
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/dk4maasz.ctr
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4maasz.ctr')
-rw-r--r--support/dktools/dk4maasz.ctr68
1 files changed, 67 insertions, 1 deletions
diff --git a/support/dktools/dk4maasz.ctr b/support/dktools/dk4maasz.ctr
index b96dd28159..52c4a5e60c 100644
--- a/support/dktools/dk4maasz.ctr
+++ b/support/dktools/dk4maasz.ctr
@@ -2,7 +2,7 @@
copyright owner = Dirk Krause
copyright year = 2015-xxxx
-license = bsd
+SPDX-License-Identifier: BSD-3-Clause
%% header
@@ -14,15 +14,27 @@ license = bsd
*/
#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
@@ -58,6 +70,26 @@ dk4ma_size_t_sub(size_t a, size_t b, dk4_er_t *erp);
size_t
dk4ma_size_t_mul(size_t a, size_t b, dk4_er_t *erp);
+/** Convert dk4_um_t value to size_t.
+ @param u Value to convert.
+ @param erp Error report, may be NULL.
+ @return Conversion result.
+
+ Error codes: DK4_E_MATH_OVERFLOW.
+*/
+size_t
+dk4ma_size_t_from(dk4_um_t u, dk4_er_t *erp);
+
+/** Convert double to signed char.
+ @param d Value to convert.
+ @param erp Error report, may be NULL.
+ @return Conversion result.
+
+ Error codes: DK4_E_OVERFLOW.
+*/
+size_t
+dk4ma_size_t_from_double(double d, dk4_er_t *erp);
+
#ifdef __cplusplus
}
#endif
@@ -126,3 +158,37 @@ dk4ma_size_t_mul(size_t a, size_t b, dk4_er_t *erp)
return (a * b);
}
+
+
+size_t
+dk4ma_size_t_from(dk4_um_t u, dk4_er_t *erp)
+{
+ if ((dk4_um_t)(SIZE_MAX) < u) {
+ dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
+ }
+ return ((size_t)u);
+}
+
+
+
+size_t
+dk4ma_size_t_from_double(double d, dk4_er_t *erp)
+{
+ size_t back = 0;
+
+ if ((double)(SIZE_MAX) < d) {
+ dk4error_set_simple_error_code(erp, DK4_E_MATH_OVERFLOW);
+ back = SIZE_MAX;
+ }
+ else {
+ if (0.0 > d) {
+ dk4error_set_simple_error_code(erp,DK4_E_MATH_OVERFLOW);
+ }
+ else {
+ back = (size_t)d;
+ }
+ }
+ return back;
+}
+
+