chore: 清理残余文件
This commit is contained in:
130
node_modules/node-pty/deps/winpty/misc/UnicodeWideTest2.cc
generated
vendored
Normal file
130
node_modules/node-pty/deps/winpty/misc/UnicodeWideTest2.cc
generated
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user