summaryrefslogtreecommitdiff
path: root/HACKING.md
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING.md')
-rw-r--r--HACKING.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/HACKING.md b/HACKING.md
new file mode 100644
index 0000000..0b78500
--- /dev/null
+++ b/HACKING.md
@@ -0,0 +1,13 @@
+The file `errlist` contains a list of symbolic constants (AKA C macros) that
+can be expected to be found in `<errno.h>` on POSIX systems. Constants are
+listed one per line. A one-line AWK command transforms this into the bulk
+of `strerror.h`, along with some `printf` calls in `Makefile`.
+
+To add more errors (for instance, GNU or Linux specific stuff that doesn't
+exist in POSIX), just add them, one per line, to `errlist` and re-run `make`.
+Every constant (and I mean every, even standard C constants like `ERANGE` and
+`EDOM`) is only included in the list if it is defined, so there are no
+portability concerns with adding macros that don't exist.
+
+There is a problem with adding constants that expand to identical values,
+though, so don't do that.