I am rewriting the regsvr stuff in dlls/comcat to make it practical to extend to ole32 and all the other COM DLLs. I have a nice simple function to skip whitespace and return the next character:
static int getc_skipws(char const **p) { while (isspace(*p)) ++*p; return **p; }
This gets called with **p == '['. I get a page fault in the implementation of isspace(), where the macro is testing 0x20 against the value for '[' in the __ctype_b array. What gives?