/libcompat

Script to generate compatibility C headers

Primary LanguageShellBSD Zero Clause License0BSD

            _     ___ ____   ____ ___  __  __ ____   _  _____
           | |   |_ _| __ ) / ___/ _ \|  \/  |  _ \ / \|_   _|
           | |    | ||  _ \| |  | | | | |\/| | |_) / _ \ | |
           | |___ | || |_) | |__| |_| | |  | |  __/ ___ \| |
           |_____|___|____/ \____\___/|_|  |_|_| /_/   \_\_|


This is a single-file header-only library that doesn’t introduce any new
functionality, but simply aids in writing more compatible code.  Most of
the library is dedicated to making C23 features work on pre-C23 codebases
(such as static_assert(), unreachable(), etc.).  There are some other
things too though, such as the charN_t types from uchar.h as platforms
such as Darwin and NetBSD don’t ship uchar.h.

The header is generated by the ‘gen’ script included in this repo.
Simply run the script and select your options, redirecting the output to
the header-file you’d like to generate:

    $ ./gen >compat.h

If you can’t be bothered to clone this repository or download the script
to your system, you can also just curl it:

    $ curl '<URL TO SCRIPT>' | sh >compat.h