Operating systems that are not unix-like are unlikely to have access to catopen. Instead of black-listing each one, we now filter out all non-unix operating systems first. We then exclude the unix-like operating systems that don't have catopen. _WIN32 counts as a unix-like operating system because of cygwin.
Details
Diff Detail
Event Timeline
I'm usually not a big fan of using definitions such as __unix__, because it is pretty vague and defined inconsistently. That said, if you're going to use this definition, then there is some good news: CloudABI doesn't define it, meaning that you could just remove it from this list.
CloudABI doesn't define unix, so stop blacklisting it explicitly and let the whitelist filter it out.
I don't have a problem with this change (assuming that it is correct, and it looks correct), but I think it should stay in __config, with all the other configuration tests. (There are other configuration tests in the .cpp files, but users never see those).
FWIW, looking at locale, I think that code can be significantly cleaned up.
Moved the CATOPEN config check back to __config. Saving a larger locale refactor for later (but oh boy is it coming).
This looks good to me.
Saving a larger locale refactor for later (but oh boy is it coming).
Looking forward to it.