A (WIP) collection of portable, strict C99, single-header implementations of common libc extensions.

### How to

Include the header in every file needed as usual:

```
#include "<ext-func-name>.h"
```

In the file chosen for the function implementation:

```
#define <EXT-FUNC-NAME>_IMPLEMENTATION
#include "<ext-func-name.h>"
```

By default, the header won't have any stdlib includes, change that with:

```
#define <EXT-FUNC-NAME>_INCLUDE_LIBC
```

Or disable function, type and variable override with:

```
#define HAVE_<EXT-FUNC-NAME>
```

### 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, will still be disabled with `$POSIXLY_CORRECT` set):

```
#define GETOPT_PERMUTE_ARGS
#define GETOPT_LONG_PERMUTE_ARGS
#define GETOPT_LONG_ONLY_PERMUTE_ARGS
```

---

