Overview
| Comment: | OFStdIOStream_Win32Console: Small read fix |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
976162aa793eb67ef8357836a4db7ad1 |
| User & Date: | js on 2016-03-13 20:29:46 |
| Other Links: | manifest | tags |
Context
|
2016-03-19
| ||
| 21:21 | Add XML file for Nintendo 3DS (check-in: b750e84c5e user: js tags: trunk) | |
|
2016-03-13
| ||
| 20:29 | OFStdIOStream_Win32Console: Small read fix (check-in: 976162aa79 user: js tags: trunk) | |
| 20:04 | OFStdIOStream_Win32Console: Use U+FFFD, not U+FFFE (check-in: 9d70e660ea user: js tags: trunk) | |
Changes
Modified src/OFStdIOStream_Win32Console.m from [c7b07d3dc1] to [856da3e285].
| ︙ | ︙ | |||
109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
size_t j = 0;
UTF16 = [self allocMemoryWithSize: sizeof(of_char16_t)
count: length];
@try {
DWORD UTF16Len;
OFDataArray *rest = nil;
if (!ReadConsoleW(_handle, UTF16, length, &UTF16Len, NULL))
@throw [OFReadFailedException
exceptionWithObject: self
requestedLength: length * 2];
if (UTF16Len > 0 && _incompleteUTF16Surrogate != 0) {
| > | 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
size_t j = 0;
UTF16 = [self allocMemoryWithSize: sizeof(of_char16_t)
count: length];
@try {
DWORD UTF16Len;
OFDataArray *rest = nil;
size_t i = 0;
if (!ReadConsoleW(_handle, UTF16, length, &UTF16Len, NULL))
@throw [OFReadFailedException
exceptionWithObject: self
requestedLength: length * 2];
if (UTF16Len > 0 && _incompleteUTF16Surrogate != 0) {
|
| ︙ | ︙ | |||
137 138 139 140 141 142 143 144 145 | rest = [OFDataArray dataArray]; [rest addItems: UTF8 count: UTF8Len]; } _incompleteUTF16Surrogate = 0; } | > | | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
rest = [OFDataArray dataArray];
[rest addItems: UTF8
count: UTF8Len];
}
_incompleteUTF16Surrogate = 0;
i++;
}
for (; i < UTF16Len; i++) {
of_unichar_t c = UTF16[i];
char UTF8[4];
size_t UTF8Len;
/* Missing high surrogate */
if ((c & 0xFC00) == 0xDC00)
@throw [OFInvalidEncodingException exception];
|
| ︙ | ︙ |