| 216 |
static _locale_t CLocale = NULL; |
static _locale_t CLocale = NULL; |
| 217 |
|
|
| 218 |
typedef struct { |
typedef struct { |
| 219 |
CheckEOLData_t *eol; |
CheckEOLData_t *check_eol; |
| 220 |
int log_cr_type; |
int log_cr_type; |
| 221 |
} vtterm_work_t; |
} vtterm_work_t; |
| 222 |
|
|
| 362 |
|
|
| 363 |
{ |
{ |
| 364 |
vtterm_work_t *vtterm = &vtterm_work; |
vtterm_work_t *vtterm = &vtterm_work; |
| 365 |
vtterm->eol = CheckEOLCreate(); |
vtterm->check_eol = CheckEOLCreate(); |
| 366 |
vtterm->log_cr_type = 0; |
vtterm->log_cr_type = 0; |
| 367 |
} |
} |
| 368 |
} |
} |
| 495 |
*/ |
*/ |
| 496 |
static void OutputLogUTF32(unsigned int u32) |
static void OutputLogUTF32(unsigned int u32) |
| 497 |
{ |
{ |
| 498 |
if (!FLogIsOpend() && !DDELog) { |
vtterm_work_t *vtterm; |
| 499 |
|
CheckEOLRet r; |
| 500 |
|
|
| 501 |
|
if (!FLogIsOpendText() && !DDELog) { |
| 502 |
return; |
return; |
| 503 |
} |
} |
| 504 |
vtterm_work_t *vtterm = &vtterm_work; |
vtterm = &vtterm_work; |
| 505 |
|
r = CheckEOLCheck(vtterm->check_eol, u32); |
|
CheckEOLRet r = CheckEOLCheck(vtterm->eol, u32); |
|
| 506 |
if ((r & CheckEOLOutputEOL) != 0) { |
if ((r & CheckEOLOutputEOL) != 0) { |
| 507 |
// ログ、改行を出力 |
// ログ、改行を出力 |
| 508 |
if (FLogIsOpend()) { |
if (FLogIsOpendText()) { |
| 509 |
OutputLogNewLine(vtterm); |
OutputLogNewLine(vtterm); |
| 510 |
} |
} |
| 511 |
|
|
| 517 |
} |
} |
| 518 |
if ((r & CheckEOLOutputChar) != 0) { |
if ((r & CheckEOLOutputChar) != 0) { |
| 519 |
// ログ、u32を出力 |
// ログ、u32を出力 |
| 520 |
if (FLogIsOpend()) { |
if (FLogIsOpendText()) { |
| 521 |
FLogPutUTF32(u32); |
FLogPutUTF32(u32); |
| 522 |
} |
} |
| 523 |
|
|
| 541 |
*/ |
*/ |
| 542 |
static BOOL NeedsOutputBufs(void) |
static BOOL NeedsOutputBufs(void) |
| 543 |
{ |
{ |
| 544 |
return cv.HLogBuf != 0 || DDELog; |
return FLogIsOpendText() || DDELog; |
| 545 |
} |
} |
| 546 |
|
|
| 547 |
void MoveToStatusLine() |
void MoveToStatusLine() |
| 6352 |
PutChar(b); |
PutChar(b); |
| 6353 |
} |
} |
| 6354 |
|
|
| 6355 |
int VTParse() |
/** |
| 6356 |
|
* 1byteよみだし |
| 6357 |
|
* ただし次の場合、読み出しを行わない |
| 6358 |
|
* - macro送信バッファに余裕がない |
| 6359 |
|
* - ログバッファに余裕がない |
| 6360 |
|
* |
| 6361 |
|
*/ |
| 6362 |
|
static int CommRead1Byte_(PComVar cv, LPBYTE b) |
| 6363 |
{ |
{ |
|
BYTE b; |
|
|
int c; |
|
|
|
|
| 6364 |
if (DDELog && DDEGetCount() >= InBuffSize - 10) { |
if (DDELog && DDEGetCount() >= InBuffSize - 10) { |
| 6365 |
/* バッファに余裕がない場合 */ |
/* バッファに余裕がない場合 */ |
| 6366 |
Sleep(1); |
Sleep(1); |
| 6367 |
return 0; |
return 0; |
| 6368 |
} |
} |
| 6369 |
|
|
| 6370 |
if (FLogGetCount() >= InBuffSize - 10) { |
if (FLogIsOpend() && FLogGetFreeCount() < 10) { |
| 6371 |
// 自分のバッファに余裕がない場合は、CPUスケジューリングを他に回し、 |
// 自分のバッファに余裕がない場合は、CPUスケジューリングを他に回し、 |
| 6372 |
// CPUがストールするの防ぐ。 |
// CPUがストールするの防ぐ。 |
| 6373 |
// (2006.10.13 yutaka) |
// (2006.10.13 yutaka) |
| 6375 |
return 0; |
return 0; |
| 6376 |
} |
} |
| 6377 |
|
|
| 6378 |
c = CommRead1Byte(&cv,&b); |
return CommRead1Byte(cv, b); |
| 6379 |
|
} |
| 6380 |
|
|
| 6381 |
|
int VTParse() |
| 6382 |
|
{ |
| 6383 |
|
BYTE b; |
| 6384 |
|
int c; |
| 6385 |
|
|
| 6386 |
|
c = CommRead1Byte_(&cv,&b); |
| 6387 |
|
|
| 6388 |
if (c==0) return 0; |
if (c==0) return 0; |
| 6389 |
|
|
| 6457 |
} |
} |
| 6458 |
|
|
| 6459 |
if (ChangeEmu==0) |
if (ChangeEmu==0) |
| 6460 |
c = CommRead1Byte(&cv,&b); |
c = CommRead1Byte_(&cv,&b); |
| 6461 |
} |
} |
| 6462 |
|
|
| 6463 |
BuffUpdateScroll(); |
BuffUpdateScroll(); |