1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
/** @mainpage Dirk Krause's libraries.
The dklib project consists of a set of libraries.
The @ref changes
page lists the changes from 3.x.x to 4.x.x.
Before going into the details I recommend to read the
@ref conceptions
page.
The following libraries are available:
@section seclibdk4base libdk4base
The @ref libdk4base library contains
basic functionality, i.e. for the following purposes:<br>
- Configuration of the library set
- Data types, numeric constants
- Error reporting from called function to caller
- Memory management
- String functions for char, wchar_t and dkChar strings.
@section seclibdk4ma Mathematical library
The @ref libdk4ma library contains arithmetic operations on integers of
different bit width and comparison operations. The arithmetic operations
check for overflow and prevent divisions by zero.
The comparison operations can compare signed and unsigned integers
properly.
@section seclibdk4maio Number I/O libraries
These libraries convert integer and double numbers to text and vice versa.
Data types char, wchar_t and dkChar are supported, use either decimal
or hexadecimal notation.
Character type | Notation | Library
:------------: | :------: | :-----:
char | decimal | @ref libdk4maio8d
char | hexadecimal | @ref libdk4maio8h
wchar_t | decimal | @ref libdk4maiowd
wchar_t | hexadecimal | @ref libdk4maiowh
dkChar | decimal | @ref libdk4maiodd
dkChar | hexadecimal | @ref libdk4maiodh
wxChar | decimal | @ref libdk4maioxd
@section seclibdk4c libdk4c
The @ref libdk4c library contains modules
for various purposes, including:
- Information retrieval
- Current users name, home directory, language, region, encoding
- Host name, executable name, process ID
- Information storage
- Sorted and unsorted storage in AVL trees or double linked lists
- Preferences handling
- File and directory processing
- String operations on path names
- Information about files
- Traverse, create and delete directories
- File search
- Unique file IDs
- Open files with additional security checks
- File operations using file descriptors
- Generic I/O
- Generic API to read or write single bytes or byte buffers
- Text output with recoding to a specified output encoding
- Plain files, gzip or bzip2 compressed files supported
- Text processing and recoding
- Recoding of characters and strings from and to ASCII, ANSI,
UTF-8, UTF-16 and 32 bit characters.
- Search for byte order marker (BOM) at beginning of data stream
- Read byte input stream, convert to ASCII, ANSI, UTF-8, UTF-16
or 32 bit characters, process character by character or line
by line
- String tables to support internationalization
- File search for configuration and data files, i.e. for string tables.
- Command line option handling
- Data encoding (run-length, ASCII-hex, ASCII-85) and decoding.
- Bit handling (bit shifting, bit fields, bit matrices).
- Timestamp handling and conversion to text.
- Command line option handling.
- Tool functions for daemons.
@section seclibdk4dbi libdk4dbi
The @ref libdk4dbi library provides a generic
interface to Berkeley DB, NDBM and in-memory databases and allows
to store text in these databases.
@section seclibdk4sock libdk4sock
The @ref libdk4sock library contains functions for socket operations
both for networking and local UNIX domain sockets.
@section seclibdk4bif libdk4bif
The @ref libdk4bif library provides a unique API to read PNG, JPEG, NetPBM
and tiff images hiding the details of libpng, libjpeg and libtiff.
Additionally there are functions to convert pixels to other color spaces
and functions to resample pixels (change the number of bits per component).
@section seclibdk4gra libdk4gra
The @ref libdk4gra library creates PDF, (E)PS and PGF graphics.
For PDF, PS and EPS it provides only non-text operations, for PGF output
text operations are available.
@section seclibdk4lab libdk4lat
The @ref libdk4lat library contains code to
find LaTeX representations for 32 bit characters.
@section seclibdk4pppt libdk4pppt
The libdk4pppt library creates file pairs PDF+TeX, (E)PS+TeX, or TeX
files. The libdk4gra library is used to place non-text graphics elements
in the PDF, (E)PS and TeX files, text labels are placed in the TeX files.
@section seclibdk4mdrnd libdk4mdrnd
The @ref libdk4mdrnd library generates message digests and random
numbers.
@section seclibdk4app libdk4app
The @ref libdk4app library provides some equivalents for libdk4c functions
with included localized diagnostics and other application support.
@section seclibdk4dbia libdk4dbia
The @ref libdk4dbia provides some equivalents for libdk4dbi functions with
included localized diagnostics.
@section seclibdk4socka libdk4socka
The @ref libdk4socka library provides some equivalents for libdk4sock functions
with included localized diagnostics.
@section seclibdk4bifa libdk4bifa
The libdk4bifap library provides some replacement functions for
libdk4bif functions containing dk4_app_t support, so the functions
can write diagnostic messages when an error occurs.
@section seclibdk4graa libdk4graa
The libdk4graa library provides some replacement functions for
libdk4gra functions containing dk4_app_t support, so the functions
can write diagnostic messages when an error occurs.
@section seclibdk4lata libdk4lata
The libdk4lata library provides some replacement functions for
libdk4lat functions containing dk4_app_t support, so the functions
can write diagnostic messages when an error occurs.
@section seclibdk4pppta libdk4pppta
The libdk4pppta library provides some replacement functions for
libdk4lat functions containing dk4_app_t support, so the functions
can write diagnostic messages when an error occurs.
@section seclibdk4wx libdk4wx
The @ref libdk4wx library provides helper classes to build
wxWidgets base GUI applications.
*/
|