#pragma once

constexpr auto CHR_SPACE = 32;
constexpr auto CHR_TAB = 9;
constexpr auto CHR_N = 10;
constexpr auto CHR_R = 13;
constexpr auto CHR_127 = 127;
constexpr auto CHR_USCQR = 0x25a0;

// таблица соответствия верхней половины аскии кодов с 128 по 255, включая псевдографику
constexpr auto KOI8TBL_SIZE = 128;
extern const std::array<wchar_t, KOI8TBL_SIZE> koi8tbl;

/*
преобразование юникодного символа в бкшный кои8.
вход:
uchr - преобразуемый символ
выход: результат
*/
uint8_t UNICODEtoBK_ch(wchar_t uchr);


/*
преобразование юникодной строки в бкшный кои8.
вход:
ustr - преобразуемая строка
pBuff - буфер, куда выводится результат
bufSize - размер буфера
bFillBuf - флаг. если строка короче размера буфера, буфер до конца забивается пробелами. (конца строки - 0 нету.)
*/
void UNICODEtoBK(const std::wstring &ustr, uint8_t *pBuff, size_t bufSize, bool bFillBuf);


