switch the "namespace" to "lce"
[libcext.git] / README.md
index a506381c9a06eb3e0c9e0e73d1bd014082a641ff..e9373ec148bad174de9ad7184505b45adbb0d39b 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,30 +1,32 @@
-A (WIP) collection of portable, strict C99, single-header implementations of common libc extensions.
+A 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
 
 Include the header in every file needed as usual:
 
 ```
 
 ### How to
 
 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:
 
 ```
 ```
 
 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:
 
 ```
 ```
 
 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:
 
 ```
 ```
 
 Or disable function, type and variable override with:
 
 ```
-#define HAVE_<EXT-FUNC-NAME>
+#define HAVE_${FUNCTION}
 ```
 
 ### Specifics
 ```
 
 ### Specifics
@@ -37,18 +39,42 @@ includes `vasprintf()` and `asprintf()`
 
 ---
 
 
 ---
 
+### fgetln
+
+includes `fgetln()`
+
+---
+
 ### getopt\_long
 
 ### getopt\_long
 
-includes `getopt()`, `getsubopt()`, `getopt_long()` and `getopt_long_only`
+includes `getopt()`, `getsubopt()`, `getopt_long()` and `getopt_long_only()`
 
 `getopt_long.h` has additional macros related to argument
 
 `getopt_long.h` has additional macros related to argument
-permuting, defining those enables it (GNU behaviour, will still be disabled with `$POSIXLY_CORRECT` set):
+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()`
+
+---
+
+### strtonum
+
+includes `strtonum()`