int main()

in misc/UnicodeWideTest2.cc [50:130]


int main(int argc, char *argv[]) {
    system("cls");
    setWindowPos(0, 0, 1, 1);
    setBufferSize(80, 38);
    setWindowPos(0, 0, 80, 38);

    // Write text.
    const wchar_t text1[] = {
        0x3044, // U+3044 (HIRAGANA LETTER I)
        0x2014, // U+2014 (EM DASH)
        0x3044, // U+3044 (HIRAGANA LETTER I)
        0xFF2D, // U+FF2D (FULLWIDTH LATIN CAPITAL LETTER M)
        0x30FC, // U+30FC (KATAKANA-HIRAGANA PROLONGED SOUND MARK)
        0x0031, // U+3031 (DIGIT ONE)
        0x2014, // U+2014 (EM DASH)
        0x0032, // U+0032 (DIGIT TWO)
        0x005C, // U+005C (REVERSE SOLIDUS)
        0x3044, // U+3044 (HIRAGANA LETTER I)
        0
    };
    setCursorPos(0, 0);
    writeChars(text1);

    setCursorPos(78, 1);
    writeChars(L"<>");

    const wchar_t text2[] = {
        0x0032, // U+3032 (DIGIT TWO)
        0x3044, // U+3044 (HIRAGANA LETTER I)
        0,
    };
    setCursorPos(78, 1);
    writeChars(text2);

    system("pause");

    dumpChars(0, 0, 17, 1);
    dumpChars(2, 0, 2, 1);
    dumpChars(2, 0, 1, 1);
    dumpChars(3, 0, 1, 1);
    dumpChars(78, 1, 2, 1);
    dumpChars(0, 2, 2, 1);

    system("pause");
    system("cls");

    const wchar_t text3[] = {
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 1
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 2
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 3
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 4
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 5
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 6
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 7
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 8
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 9
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 10
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 11
        0x30FC, 0x30FC, 0x30FC, 0xFF2D, // 12
        L'\r', '\n',
        L'\r', '\n',
        0
    };
    writeChars(text3);
    system("pause");
    {
        const COORD bufSize = {80, 2};
        const COORD bufCoord = {0, 0};
        SMALL_RECT readRegion = {0, 0, 79, 1};
        CHAR_INFO unicodeData[160];
        BOOL ret = ReadConsoleOutputW(GetStdHandle(STD_OUTPUT_HANDLE), unicodeData,
                                 bufSize, bufCoord, &readRegion);
        assert(ret);
        for (int i = 0; i < 96; ++i) {
            printf("%04x ", unicodeData[i].Char.UnicodeChar);
        }
        printf("\n");
    }

    return 0;
}