-A (WIP) collection of portable, (mostly) strict C99, single-header implementations of common libc extensions.
+A (WIP) collection of portable, strict C99, single-header implementations of common libc extensions.
+
+All functions are implemented as macros expanding to an internal function reference, this allows to use the headers with no meta build system - it compiles even if the extensions are already present, see _How to_ on disabling this behaviour.
### How to
#define <EXT-FUNC-NAME>_INCLUDE_LIBC
```
-Or disable function override with:
+Or disable function, type and variable override with:
```
#define HAVE_<EXT-FUNC-NAME>
```
-## Specifics
+### Specifics
+
+---
+
+### asprintf
+
+includes `vasprintf()` and `asprintf()`
+
+---
### getopt\_long
+includes `getopt()`, `getsubopt()`, `getopt_long()` and `getopt_long_only()`
+
`getopt_long.h` has additional macros related to argument
-permuting, defining those enables it (GNU behaviour):
+permuting, defining those enables it per function (GNU behaviour, can still be disabled at runtime by setting `$POSIXLY_CORRECT`):
```
#define GETOPT_PERMUTE_ARGS
#define GETOPT_LONG_PERMUTE_ARGS
#define GETOPT_LONG_ONLY_PERMUTE_ARGS
```
+
+---
+
+### strlcat
+
+includes `strlcat()` and `estrlcat()`
+
+---