Include the header in every file needed as usual:
```
-#include "<ext-func-name>.h"
+#include "${function}.h"
```
In the file chosen for the function implementation:
```
-#define <EXT-FUNC-NAME>_IMPLEMENTATION
-#include "<ext-func-name.h>"
+#define LCE_${FUNCTION}_IMPLEMENTATION
+#include "${function}.h>"
```
By default, the header won't have any stdlib includes, change that with:
```
-#define <EXT-FUNC-NAME>_INCLUDE_LIBC
+#define LCE_${FUNCTION}_INCLUDE_LIBC
```
Or disable function, type and variable override with:
```
-#define HAVE_<EXT-FUNC-NAME>
+#define HAVE_${FUNCTION}
```
### Specifics
---
+### fgetln
+
+includes `fgetln()`
+
+---
+
### getopt\_long
includes `getopt()`, `getsubopt()`, `getopt_long()` and `getopt_long_only()`
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
+#define LCE_GETOPT_PERMUTE_ARGS
+#define LCE_GETOPT_LONG_PERMUTE_ARGS
+#define LCE_GETOPT_LONG_ONLY_PERMUTE_ARGS
```
---
+### strdup
+
+includes `strdup()` and `strndup()`
+
+`strndup()` follows the latest standard, meaning that it copies at most _n_ chars, not _n_ + 1.
+Also, no standard specifies that `strndup()` should return less than _n_ if `strlen(s) + 1` < _n_, but this implementation does so.
+
+---
+
### strlcat
includes `strlcat()` and `strlcpy()`
---
-### strdup
-
-includes `strdup()` and `strndup()`
+### strtonum
-`strndup()` follows the latest standard, meaning that it copies at most _n_ chars, not _n_ + 1.
+includes `strtonum()`