/*
 * 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 <sprinter_compat.h>
#include <ctype.h>

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;
}
