PATH:
opt
/
bitninja-threat-hunting
/
node_modules
/
node-pty
/
deps
/
winpty
/
misc
// // Test half-width vs full-width characters. // #include <windows.h> #include <assert.h> #include <stdlib.h> #include <stdio.h> #include "TestUtil.cc" static void writeChars(const wchar_t *text) { wcslen(text); const int len = wcslen(text); DWORD actual = 0; BOOL ret = WriteConsoleW( GetStdHandle(STD_OUTPUT_HANDLE), text, len, &actual, NULL); trace("writeChars: ret=%d, actual=%lld", ret, (long long)actual); } static void dumpChars(int x, int y, int w, int h) { BOOL ret; const COORD bufSize = {w, h}; const COORD bufCoord = {0, 0}; const SMALL_RECT topLeft = {x, y, x + w - 1, y + h - 1}; CHAR_INFO mbcsData[w * h]; CHAR_INFO unicodeData[w * h]; SMALL_RECT readRegion; readRegion = topLeft; ret = ReadConsoleOutputW(GetStdHandle(STD_OUTPUT_HANDLE), unicodeData, bufSize, bufCoord, &readRegion); assert(ret); readRegion = topLeft; ret = ReadConsoleOutputA(GetStdHandle(STD_OUTPUT_HANDLE), mbcsData, bufSize, bufCoord, &readRegion); assert(ret); printf("\n"); for (int i = 0; i < w * h; ++i) { printf("(%02d,%02d) CHAR: %04x %4x -- %02x %4x\n", x + i % w, y + i / w, (unsigned short)unicodeData[i].Char.UnicodeChar, (unsigned short)unicodeData[i].Attributes, (unsigned char)mbcsData[i].Char.AsciiChar, (unsigned short)mbcsData[i].Attributes); } } 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; }
[-] DebugServer.py
[edit]
[+]
Font-Report-June2016
[-] Win32Echo1.cc
[edit]
[-] font-notes.txt
[edit]
[-] ShowArgv.cc
[edit]
[-] SetCursorPos.cc
[edit]
[-] UnicodeDoubleWidthTest.cc
[edit]
[-] SetBufferSize.cc
[edit]
[-] GetFont.cc
[edit]
[-] FreezePerfTest.cc
[edit]
[-] color-test.sh
[edit]
[+]
..
[-] ShowConsoleInput.cc
[edit]
[-] MouseInputNotes.txt
[edit]
[-] DebugClient.py
[edit]
[-] ScreenBufferTest2.cc
[edit]
[-] Win10WrapTest1.cc
[edit]
[-] VeryLargeRead.cc
[edit]
[-] FormatChar.h
[edit]
[-] ChangeScreenBuffer.cc
[edit]
[-] IdentifyConsoleWindow.ps1
[edit]
[-] DumpLines.py
[edit]
[-] EnableExtendedFlags.txt
[edit]
[-] TestUtil.cc
[edit]
[-] MoveConsoleWindow.cc
[edit]
[-] ClearConsole.cc
[edit]
[-] IsNewConsole.cc
[edit]
[-] ConoutMode.cc
[edit]
[-] SetWindowRect.cc
[edit]
[-] ConinMode.cc
[edit]
[-] WindowsBugCrashReader.cc
[edit]
[-] WriteConsole.cc
[edit]
[-] UnicodeWideTest1.cc
[edit]
[-] Notes.txt
[edit]
[-] Win32Test2.cc
[edit]
[-] ScreenBufferFreezeInactive.cc
[edit]
[-] GetConsolePos.cc
[edit]
[-] VkEscapeTest.cc
[edit]
[-] Win32Test1.cc
[edit]
[-] winbug-15048.cc
[edit]
[-] Win32Write1.cc
[edit]
[-] ScreenBufferTest.cc
[edit]
[-] OSVersion.cc
[edit]
[-] BufferResizeTests.cc
[edit]
[-] Spew.py
[edit]
[-] build32.sh
[edit]
[-] build64.sh
[edit]
[-] SetFont.cc
[edit]
[-] SelectAllTest.cc
[edit]
[-] UnixEcho.cc
[edit]
[-] ConinMode.ps1
[edit]
[-] Utf16Echo.cc
[edit]
[-] UnicodeWideTest2.cc
[edit]
[-] FontSurvey.cc
[edit]
[-] GetCh.cc
[edit]
[-] Win10WrapTest2.cc
[edit]
[-] Win32Echo2.cc
[edit]
[-] Win32Test3.cc
[edit]
[-] Win10ResizeWhileFrozen.cc
[edit]