Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/vtterm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8904 by zmatsuo, Tue Aug 18 15:31:14 2020 UTC revision 8906 by zmatsuo, Tue Aug 18 15:31:34 2020 UTC
# Line 216  static DWORD BeepOverUsedCount = 0; Line 216  static DWORD BeepOverUsedCount = 0;
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    
# Line 362  void ResetTerminal() /*reset variables b Line 362  void ResetTerminal() /*reset variables b
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  }  }
# Line 495  static void OutputLogNewLine(vtterm_work Line 495  static void OutputLogNewLine(vtterm_work
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    
# Line 515  static void OutputLogUTF32(unsigned int Line 517  static void OutputLogUTF32(unsigned int
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    
# Line 539  static void OutputLogByte(BYTE b) Line 541  static void OutputLogByte(BYTE b)
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()
# Line 6350  static void ParseFirst(BYTE b) Line 6352  static void ParseFirst(BYTE b)
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)
# Line 6369  int VTParse() Line 6375  int VTParse()
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    
# Line 6443  int VTParse() Line 6457  int VTParse()
6457                  }                  }
6458    
6459                  if (ChangeEmu==0)                  if (ChangeEmu==0)
6460                          c = CommRead1Byte(&cv,&b);                          c = CommRead1Byte_(&cv,&b);
6461          }          }
6462    
6463          BuffUpdateScroll();          BuffUpdateScroll();

Legend:
Removed from v.8904  
changed lines
  Added in v.8906

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26