a collection of ports of various popular, but non-standard headers.
current ports:
requirements for ports:
-
header-only. to avoid integration challenges, and fighting with various build systems, it's much more convinient to provide header-only implementation, which could be just dropped into the project.
-
self-contained. avoid dependencies on other non-standard headers. avoid dependencies on Windows-specific headers (e.g. "windows.h" and friends).
-
written in C. the most specific use-case for these ports is to be used in ports of GNU software (e.g. bison) and other projects written in pure C. therefore, headers cannot use C++. also, they should use standard C, without any GNU extentions, without Microsoft extentions, without C11 and other non-standard staff.
-
portable. although headers are provided only for Windows, they should work in all major compilers, include Visual Studio (at least latest versions, e.g. 2013, 2015, 2017, 2019), GCC (MinGW, both MinGW32 & MinGW64), Clang (clang-cl). others (e.g. Borland, Intel, etc.) aren't currently supported, but patches are always welcomed.
-
tested. write at least some simple unit-tests (at least using assert), use CI to verify it compiles and passes tests.
-
compliant. if header is standardized somehow (e.g. by POSIX), try to follow the standard. try to follow other documentation, if provided, for instance, man pages from Linux, BSD, Solaris, IRIX, AIX, HP-UX, QNX, etc.