| 499 |
UpdateStr(); |
UpdateStr(); |
| 500 |
Special = FALSE; |
Special = FALSE; |
| 501 |
} |
} |
| 502 |
|
|
| 503 |
#ifndef NO_COPYLINE_FIX |
#ifndef NO_COPYLINE_FIX |
| 504 |
BuffPutKanji(Kanji, CharAttrTmp, InsertMode); |
BuffPutKanji(Kanji, CharAttrTmp, InsertMode); |
| 505 |
#else |
#else |
| 900 |
} |
} |
| 901 |
break; |
break; |
| 902 |
} |
} |
| 903 |
} |
} |
| 904 |
|
|
| 905 |
void ESCSelectCode(BYTE b) |
void ESCSelectCode(BYTE b) |
| 906 |
{ |
{ |
| 1063 |
NParam = 1; |
NParam = 1; |
| 1064 |
Param[1] = 0; |
Param[1] = 0; |
| 1065 |
ParseMode = ModeXS; |
ParseMode = ModeXS; |
| 1066 |
return; |
return; |
| 1067 |
case '^': |
case '^': |
| 1068 |
case '_': /* PM, APC */ |
case '_': /* PM, APC */ |
| 1069 |
SavedMode = ParseMode; |
SavedMode = ParseMode; |
| 1640 |
MoveCursor(0,CursorY); |
MoveCursor(0,CursorY); |
| 1641 |
return; |
return; |
| 1642 |
} |
} |
| 1643 |
if (Param[1]<1) Param[1] =1; |
if (Param[1]<1) Param[1] =1; |
| 1644 |
if ((NParam < 2) | (Param[2]<1)) |
if ((NParam < 2) | (Param[2]<1)) |
| 1645 |
Param[2] = NumOfLines-StatusLine; |
Param[2] = NumOfLines-StatusLine; |
| 1646 |
Param[1]--; |
Param[1]--; |
| 1923 |
void CSQuest(BYTE b) |
void CSQuest(BYTE b) |
| 1924 |
{ |
{ |
| 1925 |
switch (b) { |
switch (b) { |
| 1926 |
case 'K': CSLineErase(); break; |
case 'K': CSLineErase(); break; |
| 1927 |
case 'h': CSQ_h_Mode(); break; |
case 'h': CSQ_h_Mode(); break; |
| 1928 |
case 'i': CSQ_i_Mode(); break; |
case 'i': CSQ_i_Mode(); break; |
| 1929 |
case 'l': CSQ_l_Mode(); break; |
case 'l': CSQ_l_Mode(); break; |
| 2135 |
else if ((b>=0x30) && (b<=0x39)) |
else if ((b>=0x30) && (b<=0x39)) |
| 2136 |
{ |
{ |
| 2137 |
if (Param[NParam] < 0) |
if (Param[NParam] < 0) |
| 2138 |
Param[NParam] = 0; |
Param[NParam] = 0; |
| 2139 |
if (Param[NParam]<1000) |
if (Param[NParam]<1000) |
| 2140 |
Param[NParam] = Param[NParam]*10 + b - 0x30; |
Param[NParam] = Param[NParam]*10 + b - 0x30; |
| 2141 |
} |
} |
| 2175 |
ParseControl(b); |
ParseControl(b); |
| 2176 |
else if ((b>=0x30) && (b<=0x39)) |
else if ((b>=0x30) && (b<=0x39)) |
| 2177 |
{ |
{ |
| 2178 |
if (Param[NParam] < 0) Param[NParam] = 0; |
if (Param[NParam] < 0) Param[NParam] = 0; |
| 2179 |
if (Param[NParam]<1000) |
if (Param[NParam]<1000) |
| 2180 |
Param[NParam] = Param[NParam]*10 + b - 0x30; |
Param[NParam] = Param[NParam]*10 + b - 0x30; |
| 2181 |
} |
} |
| 2268 |
|
|
| 2269 |
BOOL XsParseColor(char *colspec, COLORREF *color) |
BOOL XsParseColor(char *colspec, COLORREF *color) |
| 2270 |
{ |
{ |
| 2271 |
int r, g, b; |
int r, g, b; |
| 2272 |
// double dr, dg, db; |
// double dr, dg, db; |
| 2273 |
|
|
| 2274 |
r = g = b = 255; |
r = g = b = 255; |
| 2275 |
|
|
| 2276 |
if (colspec == NULL || color == NULL) { |
if (colspec == NULL || color == NULL) { |
| 2277 |
return FALSE; |
return FALSE; |
| 2278 |
} |
} |
| 2279 |
|
|
| 2280 |
if (_strnicmp(colspec, "rgb:", 4) == 0) { |
if (_strnicmp(colspec, "rgb:", 4) == 0) { |
| 2281 |
switch (strlen(colspec)) { |
switch (strlen(colspec)) { |
| 2282 |
case 9: // rgb:R/G/B |
case 9: // rgb:R/G/B |
| 2283 |
if (sscanf(colspec, "rgb:%1x/%1x/%1x", &r, &g, &b) != 3) { |
if (sscanf(colspec, "rgb:%1x/%1x/%1x", &r, &g, &b) != 3) { |
| 2284 |
return FALSE; |
return FALSE; |
| 2285 |
} |
} |
| 2286 |
r *= 17; g *= 17; b *= 17; |
r *= 17; g *= 17; b *= 17; |
| 2287 |
break; |
break; |
| 2288 |
case 12: // rgb:RR/GG/BB |
case 12: // rgb:RR/GG/BB |
| 2289 |
if (sscanf(colspec, "rgb:%2x/%2x/%2x", &r, &g, &b) != 3) { |
if (sscanf(colspec, "rgb:%2x/%2x/%2x", &r, &g, &b) != 3) { |
| 2290 |
return FALSE; |
return FALSE; |
| 2291 |
} |
} |
| 2292 |
break; |
break; |
| 2293 |
case 15: // rgb:RRR/GGG/BBB |
case 15: // rgb:RRR/GGG/BBB |
| 2294 |
if (sscanf(colspec, "rgb:%3x/%3x/%3x", &r, &g, &b) != 3) { |
if (sscanf(colspec, "rgb:%3x/%3x/%3x", &r, &g, &b) != 3) { |
| 2295 |
return FALSE; |
return FALSE; |
| 2296 |
} |
} |
| 2297 |
r >>= 4; g >>= 4; b >>= 4; |
r >>= 4; g >>= 4; b >>= 4; |
| 2298 |
break; |
break; |
| 2299 |
case 18: // rgb:RRRR/GGGG/BBBB |
case 18: // rgb:RRRR/GGGG/BBBB |
| 2300 |
if (sscanf(colspec, "rgb:%4x/%4x/%4x", &r, &g, &b) != 3) { |
if (sscanf(colspec, "rgb:%4x/%4x/%4x", &r, &g, &b) != 3) { |
| 2301 |
return FALSE; |
return FALSE; |
| 2302 |
} |
} |
| 2303 |
r >>= 8; g >>= 8; b >>= 8; |
r >>= 8; g >>= 8; b >>= 8; |
| 2304 |
break; |
break; |
| 2305 |
default: |
default: |
| 2306 |
return FALSE; |
return FALSE; |
| 2307 |
} |
} |
| 2308 |
} |
} |
| 2309 |
//else if (_strnicmp(colspec, "rgbi:", 5) == 0) { |
// else if (_strnicmp(colspec, "rgbi:", 5) == 0) { |
| 2310 |
//} |
// ; /* nothing to do */ |
| 2311 |
else if (colspec[0] == '#') { |
// } |
| 2312 |
switch (strlen(colspec)) { |
else if (colspec[0] == '#') { |
| 2313 |
case 4: // #RGB |
switch (strlen(colspec)) { |
| 2314 |
if (sscanf(colspec, "#%1x%1x%1x", &r, &g, &b) != 3) { |
case 4: // #RGB |
| 2315 |
return FALSE; |
if (sscanf(colspec, "#%1x%1x%1x", &r, &g, &b) != 3) { |
| 2316 |
} |
return FALSE; |
| 2317 |
r <<= 4; g <<= 4; b <<= 4; |
} |
| 2318 |
break; |
r <<= 4; g <<= 4; b <<= 4; |
| 2319 |
case 7: // #RGB |
break; |
| 2320 |
if (sscanf(colspec, "#%2x%2x%2x", &r, &g, &b) != 3) { |
case 7: // #RRGGBB |
| 2321 |
return FALSE; |
if (sscanf(colspec, "#%2x%2x%2x", &r, &g, &b) != 3) { |
| 2322 |
} |
return FALSE; |
| 2323 |
break; |
} |
| 2324 |
case 10: // #RGB |
break; |
| 2325 |
if (sscanf(colspec, "#%3x%3x%3x", &r, &g, &b) != 3) { |
case 10: // #RRRGGGBBB |
| 2326 |
return FALSE; |
if (sscanf(colspec, "#%3x%3x%3x", &r, &g, &b) != 3) { |
| 2327 |
} |
return FALSE; |
| 2328 |
r >>= 4; g >>= 4; b >>= 4; |
} |
| 2329 |
break; |
r >>= 4; g >>= 4; b >>= 4; |
| 2330 |
case 13: // #RGB |
break; |
| 2331 |
if (sscanf(colspec, "#%4x%4x%4x", &r, &g, &b) != 3) { |
case 13: // #RRRRGGGGBBBB |
| 2332 |
return FALSE; |
if (sscanf(colspec, "#%4x%4x%4x", &r, &g, &b) != 3) { |
| 2333 |
} |
return FALSE; |
| 2334 |
r >>= 8; g >>= 8; b >>= 8; |
} |
| 2335 |
break; |
r >>= 8; g >>= 8; b >>= 8; |
| 2336 |
default: |
break; |
| 2337 |
return FALSE; |
default: |
| 2338 |
} |
return FALSE; |
| 2339 |
} |
} |
| 2340 |
else { |
} |
| 2341 |
return FALSE; |
else { |
| 2342 |
} |
return FALSE; |
| 2343 |
|
} |
| 2344 |
|
|
| 2345 |
if (r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255) { |
if (r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255) { |
| 2346 |
return FALSE; |
return FALSE; |
| 2347 |
} |
} |
| 2348 |
|
|
| 2349 |
*color = RGB(r, g, b); |
*color = RGB(r, g, b); |
| 2350 |
return TRUE; |
return TRUE; |
| 2351 |
} |
} |
| 2352 |
|
|
| 2353 |
#define ModeXsFirst 1 |
#define ModeXsFirst 1 |
| 2357 |
#define ModeXsEsc 5 |
#define ModeXsEsc 5 |
| 2358 |
void XSequence(BYTE b) |
void XSequence(BYTE b) |
| 2359 |
{ |
{ |
| 2360 |
static BYTE XsParseMode = ModeXsFirst, PrevMode; |
static BYTE XsParseMode = ModeXsFirst, PrevMode; |
| 2361 |
static char StrBuff[sizeof(ts.Title)]; |
static char StrBuff[sizeof(ts.Title)]; |
| 2362 |
static int ColorNumber, StrLen; |
static int ColorNumber, StrLen; |
| 2363 |
COLORREF color; |
COLORREF color; |
| 2364 |
|
|
| 2365 |
switch (XsParseMode) { |
switch (XsParseMode) { |
| 2366 |
case ModeXsFirst: |
case ModeXsFirst: |
| 2367 |
if (isdigit(b)) { |
if (isdigit(b)) { |
| 2368 |
if (Param[1] < 1000) { |
if (Param[1] < 1000) { |
| 2369 |
Param[1] = Param[1]*10 + b - '0'; |
Param[1] = Param[1]*10 + b - '0'; |
| 2370 |
} |
} |
| 2371 |
} |
} |
| 2372 |
else if (b == ';') { |
else if (b == ';') { |
| 2373 |
StrBuff[0] = '\0'; |
StrBuff[0] = '\0'; |
| 2374 |
StrLen = 0; |
StrLen = 0; |
| 2375 |
if (Param[1] == 4) { |
if (Param[1] == 4) { |
| 2376 |
ColorNumber = 0; |
ColorNumber = 0; |
| 2377 |
XsParseMode = ModeXsColorNum; |
XsParseMode = ModeXsColorNum; |
| 2378 |
} |
} |
| 2379 |
else { |
else { |
| 2380 |
XsParseMode = ModeXsString; |
XsParseMode = ModeXsString; |
| 2381 |
} |
} |
| 2382 |
} |
} |
| 2383 |
else { |
else { |
| 2384 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2385 |
} |
} |
| 2386 |
break; |
break; |
| 2387 |
case ModeXsString: |
case ModeXsString: |
| 2388 |
if (b == ST || b == '\a') { /* String Terminator */ |
if (b == ST || b == '\a') { /* String Terminator */ |
| 2389 |
StrBuff[StrLen] = '\0'; |
StrBuff[StrLen] = '\0'; |
| 2390 |
switch (Param[1]) { |
switch (Param[1]) { |
| 2391 |
case 0: /* Change window title and icon name */ |
case 0: /* Change window title and icon name */ |
| 2392 |
case 1: /* Change icon name */ |
case 1: /* Change icon name */ |
| 2393 |
case 2: /* Change window title */ |
case 2: /* Change window title */ |
| 2394 |
strncpy_s(ts.Title, sizeof(ts.Title), StrBuff, _TRUNCATE); |
strncpy_s(ts.Title, sizeof(ts.Title), StrBuff, _TRUNCATE); |
| 2395 |
// (2006.6.15 maya) タイトルに渡す文字列をSJISに変換 |
// (2006.6.15 maya) タイトルに渡す文字列をSJISに変換 |
| 2396 |
ConvertToCP932(ts.Title, sizeof(ts.Title)); |
ConvertToCP932(ts.Title, sizeof(ts.Title)); |
| 2397 |
ChangeTitle(); |
ChangeTitle(); |
| 2398 |
break; |
break; |
| 2399 |
default: |
default: |
| 2400 |
/* nothing to do */; |
/* nothing to do */; |
| 2401 |
} |
} |
| 2402 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2403 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2404 |
} |
} |
| 2405 |
else if (b == ESC) { /* Escape */ |
else if (b == ESC) { /* Escape */ |
| 2406 |
PrevMode = ModeXsString; |
PrevMode = ModeXsString; |
| 2407 |
XsParseMode = ModeXsEsc; |
XsParseMode = ModeXsEsc; |
| 2408 |
} |
} |
| 2409 |
else if (b <= US) { /* Other control character -- invalid sequence */ |
else if (b <= US) { /* Other control character -- invalid sequence */ |
| 2410 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2411 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2412 |
} |
} |
| 2413 |
else if (StrLen < sizeof(StrBuff) - 1) { |
else if (StrLen < sizeof(StrBuff) - 1) { |
| 2414 |
StrBuff[StrLen++] = b; |
StrBuff[StrLen++] = b; |
| 2415 |
} |
} |
| 2416 |
break; |
break; |
| 2417 |
case ModeXsColorNum: |
case ModeXsColorNum: |
| 2418 |
if (isdigit(b)) { |
if (isdigit(b)) { |
| 2419 |
ColorNumber = ColorNumber*10 + b - '0'; |
ColorNumber = ColorNumber*10 + b - '0'; |
| 2420 |
} |
} |
| 2421 |
else if (b == ';') { |
else if (b == ';') { |
| 2422 |
XsParseMode = ModeXsColorSpec; |
XsParseMode = ModeXsColorSpec; |
| 2423 |
StrBuff[0] = '\0'; |
StrBuff[0] = '\0'; |
| 2424 |
StrLen = 0; |
StrLen = 0; |
| 2425 |
} |
} |
| 2426 |
else { |
else { |
| 2427 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2428 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2429 |
} |
} |
| 2430 |
break; |
break; |
| 2431 |
case ModeXsColorSpec: |
case ModeXsColorSpec: |
| 2432 |
if (b == ST || b == '\a') { /* String Terminator */ |
if (b == ST || b == '\a') { /* String Terminator */ |
| 2433 |
StrBuff[StrLen] = '\0'; |
StrBuff[StrLen] = '\0'; |
| 2434 |
if ((ts.ColorFlag & CF_XTERM256) && ColorNumber >= 0 && ColorNumber <= 255) { |
if ((ts.ColorFlag & CF_XTERM256) && ColorNumber >= 0 && ColorNumber <= 255) { |
| 2435 |
if (strcmp(StrBuff, "?") == 0) { |
if (strcmp(StrBuff, "?") == 0) { |
| 2436 |
color = DispGetANSIColor(ColorNumber); |
color = DispGetANSIColor(ColorNumber); |
| 2437 |
if (Send8BitMode) { |
if (Send8BitMode) { |
| 2438 |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
| 2439 |
"\2354;%d;rgb:%02x/%02x/%02x\234", CLocale, |
"\2354;%d;rgb:%02x/%02x/%02x\234", CLocale, ColorNumber, |
| 2440 |
ColorNumber, GetRValue(color), GetGValue(color), GetBValue(color)); |
GetRValue(color), GetGValue(color), GetBValue(color)); |
| 2441 |
} |
} |
| 2442 |
else { |
else { |
| 2443 |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
| 2444 |
"\033]4;%d;rgb:%02x/%02x/%02x\033\\", CLocale, |
"\033]4;%d;rgb:%02x/%02x/%02x\033\\", CLocale, ColorNumber, |
| 2445 |
ColorNumber, GetRValue(color), GetGValue(color), GetBValue(color)); |
GetRValue(color), GetGValue(color), GetBValue(color)); |
| 2446 |
} |
} |
| 2447 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2448 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2449 |
CommBinaryOut(&cv, StrBuff, strlen(StrBuff)); |
CommBinaryOut(&cv, StrBuff, strlen(StrBuff)); |
| 2450 |
break; |
break; |
| 2451 |
} |
} |
| 2452 |
else if (XsParseColor(StrBuff, &color)) { |
else if (XsParseColor(StrBuff, &color)) { |
| 2453 |
DispSetANSIColor(ColorNumber, color); |
DispSetANSIColor(ColorNumber, color); |
| 2454 |
} |
} |
| 2455 |
} |
} |
| 2456 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2457 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2458 |
} |
} |
| 2459 |
else if (b == ESC) { |
else if (b == ESC) { |
| 2460 |
PrevMode = ModeXsColorSpec; |
PrevMode = ModeXsColorSpec; |
| 2461 |
XsParseMode = ModeXsEsc; |
XsParseMode = ModeXsEsc; |
| 2462 |
} |
} |
| 2463 |
else if (b <= US) { /* Other control character -- invalid sequence */ |
else if (b <= US) { /* Other control character -- invalid sequence */ |
| 2464 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 2465 |
XsParseMode = ModeXsFirst; |
XsParseMode = ModeXsFirst; |
| 2466 |
} |
} |
| 2467 |
else if (b == ';') { |
else if (b == ';') { |
| 2468 |
if ((ts.ColorFlag & CF_XTERM256) && ColorNumber >= 0 && ColorNumber <= 255) { |
if ((ts.ColorFlag & CF_XTERM256) && ColorNumber >= 0 && ColorNumber <= 255) { |
| 2469 |
if (strcmp(StrBuff, "?") == 0) { |
if (strcmp(StrBuff, "?") == 0) { |
| 2470 |
color = DispGetANSIColor(ColorNumber); |
color = DispGetANSIColor(ColorNumber); |
| 2471 |
if (Send8BitMode) { |
if (Send8BitMode) { |
| 2472 |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
| 2473 |
"\2354;%d;rgb:%02x/%02x/%02x\234", CLocale, |
"\2354;%d;rgb:%02x/%02x/%02x\234", CLocale, ColorNumber, |
| 2474 |
ColorNumber, GetRValue(color), GetGValue(color), GetBValue(color)); |
GetRValue(color), GetGValue(color), GetBValue(color)); |
| 2475 |
} |
} |
| 2476 |
else { |
else { |
| 2477 |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
_snprintf_s_l(StrBuff, sizeof(StrBuff), _TRUNCATE, |
| 2478 |
"\033]4;%d;rgb:%02x/%02x/%02x\033\\", CLocale, |
"\033]4;%d;rgb:%02x/%02x/%02x\033\\", CLocale, ColorNumber, |
| 2479 |
ColorNumber, GetRValue(color), GetGValue(color), GetBValue(color)); |
GetRValue(color), GetGValue(color), GetBValue(color)); |
| 2480 |
} |
} |
| 2481 |
XsParseMode = ModeXsColorNum; |
XsParseMode = ModeXsColorNum; |
| 2482 |
CommBinaryOut(&cv, StrBuff, strlen(StrBuff)); |
CommBinaryOut(&cv, StrBuff, strlen(StrBuff)); |
| 2483 |
} |
} |
| 2484 |
else if (XsParseColor(StrBuff, &color)) { |
else if (XsParseColor(StrBuff, &color)) { |
| 2485 |
DispSetANSIColor(ColorNumber, color); |
DispSetANSIColor(ColorNumber, color); |
| 2486 |
} |
} |
| 2487 |
|
} |
| 2488 |
|
ColorNumber = 0; |
| 2489 |
|
StrBuff[0] = '\0'; |
| 2490 |
|
StrLen = 0; |
| 2491 |
|
XsParseMode = ModeXsColorNum; |
| 2492 |
|
} |
| 2493 |
|
else if (StrLen < sizeof(StrBuff) - 1) { |
| 2494 |
|
StrBuff[StrLen++] = b; |
| 2495 |
|
} |
| 2496 |
|
break; |
| 2497 |
|
case ModeXsEsc: |
| 2498 |
|
if (b == '\\') { /* String Terminator */ |
| 2499 |
|
XsParseMode = PrevMode; |
| 2500 |
|
XSequence(ST); |
| 2501 |
|
} |
| 2502 |
|
else { /* Other character -- invalid sequence */ |
| 2503 |
|
ParseMode = ModeFirst; |
| 2504 |
|
XsParseMode = ModeXsFirst; |
| 2505 |
|
} |
| 2506 |
|
break; |
| 2507 |
|
// default: |
| 2508 |
|
// ParseMode = ModeFirst; |
| 2509 |
|
// XsParseMode = ModeXsFirst; |
| 2510 |
} |
} |
|
ColorNumber = 0; |
|
|
StrBuff[0] = '\0'; |
|
|
StrLen = 0; |
|
|
XsParseMode = ModeXsColorNum; |
|
|
} |
|
|
else if (StrLen < sizeof(StrBuff) - 1) { |
|
|
StrBuff[StrLen++] = b; |
|
|
} |
|
|
break; |
|
|
case ModeXsEsc: |
|
|
if (b == '\\') { /* String Terminator */ |
|
|
XsParseMode = PrevMode; |
|
|
XSequence(ST); |
|
|
} |
|
|
else { /* Other character -- invalid sequence */ |
|
|
ParseMode = ModeFirst; |
|
|
XsParseMode = ModeXsFirst; |
|
|
} |
|
|
break; |
|
|
// default: |
|
|
// ParseMode = ModeFirst; |
|
|
// XsParseMode = ModeXsFirst; |
|
|
} |
|
| 2511 |
} |
} |
| 2512 |
|
|
| 2513 |
void DLESeen(BYTE b) |
void DLESeen(BYTE b) |
| 2588 |
Wrap = FALSE; |
Wrap = FALSE; |
| 2589 |
} |
} |
| 2590 |
} |
} |
| 2591 |
|
|
| 2592 |
if (SSflag) |
if (SSflag) |
| 2593 |
{ |
{ |
| 2594 |
if (Gn[GLtmp] == IdKanji) |
if (Gn[GLtmp] == IdKanji) |
| 2674 |
((ts.TermFlag & TF_FIXEDJIS)!=0)) |
((ts.TermFlag & TF_FIXEDJIS)!=0)) |
| 2675 |
PutChar(b); // katakana |
PutChar(b); // katakana |
| 2676 |
else { |
else { |
| 2677 |
if (Gn[Glr[1]] == IdASCII) |
if (Gn[Glr[1]] == IdASCII) |
| 2678 |
b = b & 0x7f; |
b = b & 0x7f; |
| 2679 |
PutChar(b); |
PutChar(b); |
| 2680 |
} |
} |
| 2716 |
// |
// |
| 2717 |
#include "hfs_plus.map" |
#include "hfs_plus.map" |
| 2718 |
|
|
| 2719 |
unsigned short GetIllegalUnicode(int start_index, unsigned short first_code, unsigned short code, |
unsigned short GetIllegalUnicode(int start_index, unsigned short first_code, unsigned short code, |
| 2720 |
hfsplus_codemap_t *table, int tmax) |
hfsplus_codemap_t *table, int tmax) |
| 2721 |
{ |
{ |
| 2722 |
unsigned short result = 0; |
unsigned short result = 0; |
| 2800 |
if (cset != 0) { |
if (cset != 0) { |
| 2801 |
Kanji = cset & 0xff00; |
Kanji = cset & 0xff00; |
| 2802 |
PutKanji(cset & 0x00ff); |
PutKanji(cset & 0x00ff); |
| 2803 |
} |
} |
| 2804 |
} |
} |
| 2805 |
|
|
| 2806 |
if (cset == 0) { |
if (cset == 0) { |
| 2862 |
memset(mbchar, 0, sizeof(mbchar)); |
memset(mbchar, 0, sizeof(mbchar)); |
| 2863 |
|
|
| 2864 |
// 2バイトコードの場合 |
// 2バイトコードの場合 |
| 2865 |
if ((buf[0] & 0xe0) == 0xc0 && |
if ((buf[0] & 0xe0) == 0xc0 && |
| 2866 |
(buf[1] & 0xc0) == 0x80) { |
(buf[1] & 0xc0) == 0x80) { |
| 2867 |
|
|
| 2868 |
if (hfsplus_mode == 1 && maybe_hfsplus == 1) { |
if (hfsplus_mode == 1 && maybe_hfsplus == 1) { |
| 2887 |
} |
} |
| 2888 |
|
|
| 2889 |
return TRUE; |
return TRUE; |
| 2890 |
} |
} |
| 2891 |
|
|
| 2892 |
buf[count++] = b; |
buf[count++] = b; |
| 2893 |
|
|
| 2894 |
if ((buf[0] & 0xe0) == 0xe0 && |
if ((buf[0] & 0xe0) == 0xe0 && |
| 2895 |
(buf[1] & 0xc0) == 0x80 && |
(buf[1] & 0xc0) == 0x80 && |
| 2896 |
(buf[2] & 0xc0) == 0x80) { // 3バイトコードの場合 |
(buf[2] & 0xc0) == 0x80) { // 3バイトコードの場合 |
| 2897 |
|
|
| 2898 |
// UTF-8 BOM(Byte Order Mark) |
// UTF-8 BOM(Byte Order Mark) |
| 2978 |
if ((ts.Language==IdJapanese && ts.KanjiCode == IdUTF8) && |
if ((ts.Language==IdJapanese && ts.KanjiCode == IdUTF8) && |
| 2979 |
ParseFirstUTF8(b, 0)) { |
ParseFirstUTF8(b, 0)) { |
| 2980 |
return; |
return; |
|
|
|
| 2981 |
} else if ((ts.Language==IdJapanese && ts.KanjiCode == IdUTF8m) && |
} else if ((ts.Language==IdJapanese && ts.KanjiCode == IdUTF8m) && |
| 2982 |
ParseFirstUTF8(b, 1)) { |
ParseFirstUTF8(b, 1)) { |
| 2983 |
return; |
return; |
|
|
|
|
|
|
| 2984 |
} else if ((ts.Language==IdJapanese) && |
} else if ((ts.Language==IdJapanese) && |
| 2985 |
ParseFirstJP(b)) return; |
ParseFirstJP(b)) return; |
| 2986 |
else if ((ts.Language==IdRussian) && |
else if ((ts.Language==IdRussian) && |
| 2987 |
ParseFirstRus(b)) return; |
ParseFirstRus(b)) return; |
| 2988 |
|
|
| 2989 |
if (SSflag) |
if (SSflag) |
| 2990 |
{ |
{ |
| 2991 |
PutChar(b); |
PutChar(b); |