/* * solid_compat.c — Solid-C compatibility helpers that need real code * (rather than just header macros). * * CP866 Cyrillic support: strlwr/strupr handle uppercase/lowercase * conversion for both Latin and Cyrillic characters in CP866 code page * (bytes 0x80–0xFF). */ #include #include char *strlwr(char *s) { char *p = s; while (*p) { if ((*p >= 'A' && *p <= 'Z') || (*p >= 0x80 && *p <= 0x8F)) *p += 'a' - 'A'; else if ((*p >= 0x90 && *p <= 0x9F)) *p += 0x50; else if ((*p == 0xF0)) *p = 0xF1; p++; } return s; }