1%%	options
2
3
4copyright owner	=	Dirk Krause
5copyright year	=	2015-xxxx
6SPDX-License-Identifier:	BSD-3-Clause
7
8
9%%	header
10
11/**	@file
12	Convert dk4_um_t / dk4_im_t
13	to dkChar strings in decimal notation.
14*/
15
16#ifndef DK4CONF_H_INCLUDED
17#if DK4_BUILDING_DKTOOLS4
18#include "dk4conf.h"
19#else
20#include <dktools-4/dk4conf.h>
21#endif
22#endif
23
24
25
26#ifndef DK4TYPES_H_INCLUDED
27#if DK4_BUILDING_DKTOOLS4
28#include <libdk4base/dk4types.h>
29#else
30#include <dktools-4/dk4types.h>
31#endif
32#endif
33
34#ifndef DK4ERROR_H_INCLUDED
35#if DK4_BUILDING_DKTOOLS4
36#include <libdk4base/dk4error.h>
37#else
38#include <dktools-4/dk4error.h>
39#endif
40#endif
41
42
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48/**	Write unsigned number to char string in decimal notation.
49
50	CRT on Windows: Optional.
51	@param	dptr	Pointer to buffer for string.
52	@param	sz	Buffer size (number of char).
53	@param	val	Value to write.
54	@param	padsz	Minimum number of digits.
55	@param	erp	Error report, may be NULL.
56	@return	1 on success, 0 on error.
57*/
58int
59dk4ma_write_decimal_unsigned(
60  dkChar *dptr, size_t sz, dk4_um_t val, size_t padsz, dk4_er_t *erp
61);
62
63/**	Write signed number to char string in decimal notation.
64
65	CRT on Windows: Optional.
66	@param	dptr	Pointer to buffer for string.
67	@param	sz	Buffer size (number of char).
68	@param	val	Value to write.
69	@param	padsz	Minimum number of digits.
70	@param	erp	Error report, may be NULL.
71	@return	1 on success, 0 on error.
72*/
73int
74dk4ma_write_decimal_signed(
75  dkChar *dptr, size_t sz, dk4_im_t val, size_t padsz, dk4_er_t *erp
76);
77
78
79#ifdef __cplusplus
80}
81#endif
82
83
84
85%%	module
86
87#include "dk4conf.h"
88
89#include <libdk4base/dk4types.h>
90
91
92
93#if DK4_CHAR_SIZE > 1
94#include <libdk4maiowd/dk4maowd.h>
95#else
96#include <libdk4maio8d/dk4mao8d.h>
97#endif
98
99#include <libdk4maiodd/dk4maodd.h>
100#include <libdk4base/dk4error.h>
101
102#if	DK4_HAVE_ASSERT_H
103#ifndef	ASSERT_H_INCLUDED
104#include <assert.h>
105#define	ASSERT_H_INCLUDED 1
106#endif
107#endif
108
109
110int
111dk4ma_write_decimal_unsigned(
112  dkChar *dptr, size_t sz, dk4_um_t val, size_t padsz, dk4_er_t *erp
113)
114{
115#if	DK4_USE_ASSERT
116  assert(NULL != dptr);
117  assert(0 < sz);
118#endif
119#if DK4_CHAR_SIZE > 1
120  return (dk4ma_write_wc_decimal_unsigned(dptr, sz, val, padsz, erp));
121#else
122  return (dk4ma_write_c8_decimal_unsigned(dptr, sz, val, padsz, erp));
123#endif
124}
125
126
127
128int
129dk4ma_write_decimal_signed(
130  dkChar *dptr, size_t sz, dk4_im_t val, size_t padsz, dk4_er_t *erp
131)
132{
133#if	DK4_USE_ASSERT
134  assert(NULL != dptr);
135  assert(0 < sz);
136#endif
137#if DK4_CHAR_SIZE > 1
138  return (dk4ma_write_wc_decimal_signed(dptr, sz, val, padsz, erp));
139#else
140  return (dk4ma_write_c8_decimal_signed(dptr, sz, val, padsz, erp));
141#endif
142}
143
144
145