/*
 * strupr — строку в верхний регистр, латиница + кириллица CP866.
 *
 * CP866: а-п = 0xA0..0xAF (−0x20 даёт А-П 0x80..0x8F) и
 * р-я = 0xE0..0xEF (−0x50 даёт Р-Я 0x90..0x9F); ё 0xF1 → Ё 0xF0.
 * Solid-C совместимость (<sprinter_compat.h>).
 */

#include <sprinter_compat.h>
#include <ctype.h>

char *strupr(char *s)
{
    char *p = s;
    while (*p) {
        if ((*p >= 'a' && *p <= 'z') || (*p >= 0xA0 && *p <= 0xAF)) *p -= 'a' - 'A';
        else if ((*p >= 0xE0 && *p <= 0xEF)) *p -= 0x50;
        else if ((*p == 0xF1)) *p = 0xF0;
        p++;
    }
    return s;
}
