Develop and Download Open Source Software

Browse CVS Repository

Diff of /ttssh2/teraterm/source/teraterm/filesys.cpp

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

revision 1.1 by yutakakn, Mon Nov 15 14:43:41 2004 UTC revision 1.16 by maya, Wed Aug 8 15:56:35 2007 UTC
# Line 64  PProtoCancel ProtoCancel; Line 64  PProtoCancel ProtoCancel;
64  #define IdProtoTimeOutProc 9  #define IdProtoTimeOutProc 9
65  #define IdProtoCancel    10  #define IdProtoCancel    10
66    
67    /*
68       Line Head flag for timestamping
69       2007.05.24 Gentaro
70    */
71    enum enumLineEnd {
72            Line_Other = 0,
73            Line_LineHead = 1,
74            Line_FileHead = 2,
75    };
76    
77    enum enumLineEnd eLineEnd = Line_LineHead;
78    
79  BOOL LoadTTFILE()  BOOL LoadTTFILE()
80  {  {
81    BOOL Err;    BOOL Err;
# Line 165  static PProtoDlg PtDlg = NULL; Line 177  static PProtoDlg PtDlg = NULL;
177  BOOL OpenFTDlg(PFileVar fv)  BOOL OpenFTDlg(PFileVar fv)
178  {  {
179    PFileTransDlg FTDlg;    PFileTransDlg FTDlg;
180    #ifndef NO_I18N
181      HWND HFTDlg;
182    #endif
183    
184    FTDlg = new CFileTransDlg();    FTDlg = new CFileTransDlg();
185        
186    if (FTDlg!=NULL)    if (FTDlg!=NULL)
187    {    {
188    #ifndef NO_I18N
189        FTDlg->Create(fv, &cv, &ts);
190    #else
191      FTDlg->Create(fv, &cv);      FTDlg->Create(fv, &cv);
192    #endif
193      FTDlg->RefreshNum();      FTDlg->RefreshNum();
194      if (fv->OpId == OpLog)      if (fv->OpId == OpLog)
195        FTDlg->ShowWindow(SW_MINIMIZE);        FTDlg->ShowWindow(SW_MINIMIZE);
# Line 181  BOOL OpenFTDlg(PFileVar fv) Line 200  BOOL OpenFTDlg(PFileVar fv)
200    else    else
201      SendDlg = FTDlg; /* File send */      SendDlg = FTDlg; /* File send */
202    
203    #ifndef NO_I18N
204      HFTDlg=FTDlg->GetSafeHwnd();
205    
206      GetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg, sizeof(ts.UIMsg));
207      get_lang_msg("DLG_FILETRANS_FILENAME", ts.UIMsg, ts.UILanguageFile);
208      SetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg);
209      GetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg, sizeof(ts.UIMsg));
210      get_lang_msg("DLG_FILETRANS_FULLPATH", ts.UIMsg, ts.UILanguageFile);
211      SetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg);
212      GetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg, sizeof(ts.UIMsg));
213      get_lang_msg("DLG_FILETRANS_TRNAS", ts.UIMsg, ts.UILanguageFile);
214      SetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg);
215      GetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg, sizeof(ts.UIMsg));
216      get_lang_msg("BTN_CANCEL", ts.UIMsg, ts.UILanguageFile);
217      SetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg);
218      GetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg, sizeof(ts.UIMsg));
219      get_lang_msg("DLG_FILETRANS_PAUSE", ts.UIMsg, ts.UILanguageFile);
220      SetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg);
221      GetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg, sizeof(ts.UIMsg));
222      get_lang_msg("BTN_HELP", ts.UIMsg, ts.UILanguageFile);
223      SetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg);
224    #endif
225    
226    return (FTDlg!=NULL);    return (FTDlg!=NULL);
227  }  }
228    
# Line 192  BOOL NewFileVar(PFileVar *fv) Line 234  BOOL NewFileVar(PFileVar *fv)
234      if ((*fv)!=NULL)      if ((*fv)!=NULL)
235      {      {
236        memset(*fv, 0, sizeof(TFileVar));        memset(*fv, 0, sizeof(TFileVar));
237        strcpy((*fv)->FullName,ts.FileDir);        strncpy_s((*fv)->FullName, sizeof((*fv)->FullName),ts.FileDir, _TRUNCATE);
238        AppendSlash((*fv)->FullName);        AppendSlash((*fv)->FullName,sizeof((*fv)->FullName));
239        (*fv)->DirLen = strlen((*fv)->FullName);        (*fv)->DirLen = strlen((*fv)->FullName);
240        (*fv)->FileOpen = FALSE;        (*fv)->FileOpen = FALSE;
241        (*fv)->OverWrite = ((ts.FTFlag & FT_RENAME) == 0);        (*fv)->OverWrite = ((ts.FTFlag & FT_RENAME) == 0);
# Line 221  void FreeFileVar(PFileVar *fv) Line 263  void FreeFileVar(PFileVar *fv)
263    }    }
264  }  }
265    
266    // &h をホスト名に置換 (2007.5.14)
267    void ConvertLogname(char *c, int destlen)
268    {
269      char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;
270    
271      memset(buf, 0, sizeof(buf));
272    
273      while(*p != '\0') {
274        if (*p == '&' && *(p+1) != '\0') {
275          switch (*(p+1)) {
276            case 'h':
277              if (cv.Open) {
278                if (cv.PortType == IdTCPIP) {
279                  strncat_s(buf,sizeof(buf),ts.HostName,_TRUNCATE);
280                }
281                else if (cv.PortType == IdSerial) {
282                  strncpy_s(buf2,sizeof(buf2),buf,_TRUNCATE);
283                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%sCOM%d", buf2, ts.ComPort);
284                }
285              }
286              break;
287            default:
288              strncpy_s(buf2,sizeof(buf2),p,2);
289              strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
290          }
291          p++;
292        }
293        else {
294              strncpy_s(buf2,sizeof(buf2),p,1);
295              strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
296        }
297        p++;
298      }
299      strncpy_s(c, destlen, buf, _TRUNCATE);
300    }
301    
302  extern "C" {  extern "C" {
303  void LogStart()  void LogStart()
304  {  {
305    LONG Option;          LONG Option;
306            char *logdir;
307    
308    if ((FileLog) || (BinLog)) return;          if ((FileLog) || (BinLog)) return;
309    
310    if (! LoadTTFILE()) return;          if (! LoadTTFILE()) return;
311    if (! NewFileVar(&LogVar))          if (! NewFileVar(&LogVar))
312    {          {
313      FreeTTFILE();                  FreeTTFILE();
314      return;                  return;
315    }          }
316    LogVar->OpId = OpLog;          LogVar->OpId = OpLog;
317    
318    if (strlen(&(LogVar->FullName[LogVar->DirLen]))==0)          if (strlen(ts.LogDefaultPath) > 0) {
319    {                  logdir = ts.LogDefaultPath;
320      Option = MAKELONG(ts.TransBin,ts.Append);          }
321      if (! (*GetTransFname)(LogVar, ts.FileDir, GTF_LOG, &Option))          else if (strlen(ts.FileDir) > 0) {
322      {                  logdir = ts.FileDir;
323        FreeFileVar(&LogVar);          }
324        FreeTTFILE();          else {
325        return;                  logdir = ts.HomeDir;
326      }          }
     ts.TransBin = LOWORD(Option);  
     ts.Append = HIWORD(Option);  
   }  
   else  
     (*SetFileVar)(LogVar);  
327    
328    if (ts.TransBin > 0)          if (strlen(&(LogVar->FullName[LogVar->DirLen]))==0)
329    {          {
330      BinLog = TRUE;                  // LOWORD
331      FileLog = FALSE;                  // 0x0001 = Binary
332      if (! CreateBinBuf())                  // HIWORD
333      {                  // 0x0001 = Append
334        FileTransEnd(OpLog);                  // 0x1000 = plain text (2005.2.20 yutaka)
335        return;                  // 0x2000 = timestamp (2006.7.23 maya)
336      }                  // teraterm.iniの設定を見てからデフォルトオプションを決める。(2005.5.7 yutaka)
337    }                  Option = MAKELONG(ts.TransBin,ts.Append |
338    else {                                                    (0x1000 * ts.LogTypePlainText) |
339      BinLog = FALSE;                                                    (0x2000 * ts.LogTimestamp));
340      FileLog = TRUE;  
341      if (! CreateLogBuf())                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)
342      {                  strncat_s(LogVar->FullName, sizeof(LogVar->FullName), ts.LogDefaultName, _TRUNCATE);
       FileTransEnd(OpLog);  
       return;  
     }  
   }  
   cv.LStart = cv.LogPtr;  
   cv.LCount = 0;  
343    
344    HelpId = HlpFileLog;                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
345    if (ts.Append > 0)  
346    {                  // &h をホスト名に置換 (2007.5.14)
347      LogVar->FileHandle = _lopen(LogVar->FullName,OF_WRITE);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
348      if (LogVar->FileHandle>0)  
349        _llseek(LogVar->FileHandle,0,2);                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))
350      else                  {
351        LogVar->FileHandle = _lcreat(LogVar->FullName,0);                          FreeFileVar(&LogVar);
352    }                          FreeTTFILE();
353    else                          return;
354      LogVar->FileHandle = _lcreat(LogVar->FullName,0);                  }
355    LogVar->FileOpen = (LogVar->FileHandle>0);                  ts.TransBin = LOWORD(Option);
356    if (! LogVar->FileOpen)                  ts.Append = HIWORD(Option);
357    {  
358      FileTransEnd(OpLog);                  if (ts.Append & 0x1000) {
359      return;                          ts.LogTypePlainText = 1;
360    }                  } else {
361    LogVar->ByteCount = 0;                          ts.LogTypePlainText = 0;
362                    }
363    
364                    if (ts.Append & 0x2000) {
365                            ts.LogTimestamp = 1;
366                    }
367                    else {
368                            ts.LogTimestamp = 0;
369                    }
370    
371                    ts.Append &= 0x1; // 1bitにマスクする
372    
373            }
374            else {
375                    // LogVar->DirLen = 0 だとここに来る
376                    // フルパス・相対パスともに LogVar->FullName に入れておく必要がある
377                    char FileName[MAX_PATH];
378    
379                    // フルパス化
380                    strncpy_s(FileName, sizeof(FileName), LogVar->FullName, _TRUNCATE);
381                    ConvFName(logdir,FileName,sizeof(FileName),"",LogVar->FullName,sizeof(LogVar->FullName));
382    
383                    ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
384    
385                    // &h をホスト名に置換 (2007.5.14)
386                    ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
387                    (*SetFileVar)(LogVar);
388            }
389    
390            if (ts.TransBin > 0)
391            {
392                    BinLog = TRUE;
393                    FileLog = FALSE;
394                    if (! CreateBinBuf())
395                    {
396                            FileTransEnd(OpLog);
397                            return;
398                    }
399            }
400            else {
401                    BinLog = FALSE;
402                    FileLog = TRUE;
403                    if (! CreateLogBuf())
404                    {
405                            FileTransEnd(OpLog);
406                            return;
407                    }
408            }
409            cv.LStart = cv.LogPtr;
410            cv.LCount = 0;
411    
412    if (! OpenFTDlg(LogVar))          HelpId = HlpFileLog;
413      FileTransEnd(OpLog);          /* 2007.05.24 Gentaro */
414            eLineEnd = Line_LineHead;
415    
416            if (ts.Append > 0)
417            {
418                    LogVar->FileHandle = _lopen(LogVar->FullName,OF_WRITE);
419                    if (LogVar->FileHandle>0){
420                            _llseek(LogVar->FileHandle,0,2);
421                            /* 2007.05.24 Gentaro
422                                    If log file already exists,
423                                    a newline is inserted before the first timestamp.
424                            */
425                            eLineEnd = Line_FileHead;
426                    }
427                    else
428                            LogVar->FileHandle = _lcreat(LogVar->FullName,0);
429            }
430            else
431                    LogVar->FileHandle = _lcreat(LogVar->FullName,0);
432            LogVar->FileOpen = (LogVar->FileHandle>0);
433            if (! LogVar->FileOpen)
434            {
435                    FileTransEnd(OpLog);
436                    return;
437            }
438            LogVar->ByteCount = 0;
439    
440            if (! OpenFTDlg(LogVar))
441                    FileTransEnd(OpLog);
442  }  }
443  }  }
444    
# Line 326  void LogPut1(BYTE b) Line 471  void LogPut1(BYTE b)
471      }      }
472      else cv.DCount++;      else cv.DCount++;
473    }    }
474    else    else {
475      cv.DCount = 0;      cv.DCount = 0;
476            // ログ採取中にマクロがストールする問題への修正。
477            // ログ採取中に一度マクロを止めると、バッファのインデックスが同期取れなくなり、
478            // 再度マクロを流しても正しいデータが送れないのが原因。
479            // マクロを停止させた状態でもインデックスの同期を取るようにした。
480            // (2006.12.26 yutaka)
481        cv.DStart = cv.LogPtr;
482      }
483  }  }
484    
485  void Log1Byte(BYTE b)  void Log1Byte(BYTE b)
# Line 378  void CommentLogToFile(char *buf, int siz Line 530  void CommentLogToFile(char *buf, int siz
530          DWORD wrote;          DWORD wrote;
531    
532          if (LogVar == NULL || !LogVar->FileOpen) {          if (LogVar == NULL || !LogVar->FileOpen) {
533    #ifndef NO_I18N
534                    char uimsg[MAX_UIMSG];
535                    strncpy_s(uimsg, sizeof(uimsg), "ERROR", _TRUNCATE);
536                    get_lang_msg("MSG_ERROR", uimsg, ts.UILanguageFile);
537                    strncpy_s(ts.UIMsg, sizeof(ts.UIMsg), "It is not opened by the log file yet.", _TRUNCATE);
538                    get_lang_msg("MSG_COMMENT_LOG_OPEN_ERROR", ts.UIMsg, ts.UILanguageFile);
539                    ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);
540    #else
541                  ::MessageBox(NULL, "It is not opened by the log file yet.", "ERROR", MB_OK|MB_ICONEXCLAMATION);                  ::MessageBox(NULL, "It is not opened by the log file yet.", "ERROR", MB_OK|MB_ICONEXCLAMATION);
542    #endif
543                  return;                  return;
544          }          }
545    
546          logfile_lock();          logfile_lock();
547          WriteFile((HANDLE)LogVar->FileHandle, buf, size, &wrote, NULL);          WriteFile((HANDLE)LogVar->FileHandle, buf, size, &wrote, NULL);
548          WriteFile((HANDLE)LogVar->FileHandle, "\r\n", 2, &wrote, NULL); // 改行          WriteFile((HANDLE)LogVar->FileHandle, "\r\n", 2, &wrote, NULL); // 改行
549            /* Set Line End Flag
550                    2007.05.24 Gentaro
551            */
552            eLineEnd = Line_LineHead;
553          logfile_unlock();          logfile_unlock();
554  }  }
555    
# Line 420  void LogToFile() Line 585  void LogToFile()
585          {          {
586                  if (((cv.FilePause & OpLog)==0) && (! cv.ProtoFlag))                  if (((cv.FilePause & OpLog)==0) && (! cv.ProtoFlag))
587                  {                  {
588                            // 時刻を書き出す(2006.7.23 maya)
589                            // 日付フォーマットを日本ではなく世界標準に変更した (2006.7.23 yutaka)
590                            /* 2007.05.24 Gentaro */
591                            if ( ts.LogTimestamp && eLineEnd ) {
592    #if 0
593                                    SYSTEMTIME      LocalTime;
594                                    GetLocalTime(&LocalTime);
595                                    char strtime[27];
596    
597                                    // format time
598                                    sprintf(strtime, "[%04d/%02d/%02d %02d:%02d:%02d.%03d] ",
599                                                    LocalTime.wYear, LocalTime.wMonth,LocalTime.wDay,
600                                                    LocalTime.wHour, LocalTime.wMinute, LocalTime.wSecond,
601                                                    LocalTime.wMilliseconds);
602    #else
603                                            time_t tick = time(NULL);
604                                            char *strtime = ctime(&tick);
605    #endif
606                                    /* 2007.05.24 Gentaro */
607                                    if( eLineEnd == Line_FileHead ){
608                                            _lwrite(LogVar->FileHandle,"\r\n",2);
609                                    }
610                                    _lwrite(LogVar->FileHandle,"[",1);
611                                    // 変換した文字列の終端に \n が含まれているので取り除く。
612                                    _lwrite(LogVar->FileHandle, strtime, strlen(strtime) - 1);
613                                    _lwrite(LogVar->FileHandle,"] ",2);
614                            }
615                            
616                            /* 2007.05.24 Gentaro */
617                            if( b == 0x0a ){
618                                    eLineEnd = Line_LineHead; /* set endmark*/
619                            }
620                            else {
621                                    eLineEnd = Line_Other; /* clear endmark*/
622                            }
623    
624                          _lwrite(LogVar->FileHandle,(PCHAR)&b,1);                          _lwrite(LogVar->FileHandle,(PCHAR)&b,1);
625                          (LogVar->ByteCount)++;                          (LogVar->ByteCount)++;
626                  }                  }
# Line 520  void FileSendStart() Line 721  void FileSendStart()
721    if (strlen(&(SendVar->FullName[SendVar->DirLen]))==0)    if (strlen(&(SendVar->FullName[SendVar->DirLen]))==0)
722    {    {
723      Option = MAKELONG(ts.TransBin,0);      Option = MAKELONG(ts.TransBin,0);
724            SendVar->FullName[0] = 0;
725      if (! (*GetTransFname)(SendVar, ts.FileDir, GTF_SEND, &Option))      if (! (*GetTransFname)(SendVar, ts.FileDir, GTF_SEND, &Option))
726      {          {
727        FileTransEnd(OpSendFile);        FileTransEnd(OpSendFile);
728        return;        return;
729      }      }
# Line 694  BOOL OpenProtoDlg(PFileVar fv, int IdPro Line 896  BOOL OpenProtoDlg(PFileVar fv, int IdPro
896  {  {
897    int vsize;    int vsize;
898    PProtoDlg pd;    PProtoDlg pd;
899    #ifndef NO_I18N
900      HWND Hpd;
901    #endif
902    
903    ProtoId = IdProto;    ProtoId = IdProto;
904    
# Line 745  BOOL OpenProtoDlg(PFileVar fv, int IdPro Line 950  BOOL OpenProtoDlg(PFileVar fv, int IdPro
950      ProtoVar = NULL;      ProtoVar = NULL;
951      return FALSE;      return FALSE;
952    }    }
953    #ifndef NO_I18N
954      pd->Create(fv,&ts);
955    #else
956    pd->Create(fv);    pd->Create(fv);
957    #endif
958    
959    #ifndef NO_I18N
960      Hpd=pd->GetSafeHwnd();
961    
962      GetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg, sizeof(ts.UIMsg));
963      get_lang_msg("DLG_PROT_FIELNAME", ts.UIMsg, ts.UILanguageFile);
964      SetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg);
965      GetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg, sizeof(ts.UIMsg));
966      get_lang_msg("DLG_PROT_PROTO", ts.UIMsg, ts.UILanguageFile);
967      SetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg);
968      GetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg, sizeof(ts.UIMsg));
969      get_lang_msg("DLG_PROT_PACKET", ts.UIMsg, ts.UILanguageFile);
970      SetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg);
971      GetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg, sizeof(ts.UIMsg));
972      get_lang_msg("DLG_PROT_TRANS", ts.UIMsg, ts.UILanguageFile);
973      SetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg);
974      GetDlgItemText(Hpd, IDCANCEL, ts.UIMsg, sizeof(ts.UIMsg));
975      get_lang_msg("BTN_CANCEL", ts.UIMsg, ts.UILanguageFile);
976      SetDlgItemText(Hpd, IDCANCEL, ts.UIMsg);
977    #endif
978        
979    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);
980    
# Line 874  void KermitStart(int mode) Line 1103  void KermitStart(int mode)
1103        }        }
1104        else        else
1105          (*SetFileVar)(FileVar);          (*SetFileVar)(FileVar);
1106        break;            break;
1107      case IdKmtReceive:      case IdKmtReceive:
1108        FileVar->OpId = OpKmtRcv;        FileVar->OpId = OpKmtRcv;
1109        break;        break;
# Line 891  void KermitStart(int mode) Line 1120  void KermitStart(int mode)
1120        }        }
1121        else        else
1122          (*SetFileVar)(FileVar);          (*SetFileVar)(FileVar);
1123        break;            break;
1124      case IdKmtFinish:      case IdKmtFinish:
1125        FileVar->OpId = OpKmtFin;        FileVar->OpId = OpKmtFin;
1126        break;        break;
# Line 1006  void BPStart(int mode) Line 1235  void BPStart(int mode)
1235      FileVar->OpId = OpBPSend;      FileVar->OpId = OpBPSend;
1236      if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0)      if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0)
1237      {      {
1238              FileVar->FullName[0] = 0;
1239        if (! (*GetTransFname)(FileVar, ts.FileDir, GTF_BP, &Option))        if (! (*GetTransFname)(FileVar, ts.FileDir, GTF_BP, &Option))
1240        {            {
1241          ProtoEnd();          ProtoEnd();
1242          return;          return;
1243        }        }
1244      }      }
1245      else      else
1246        (*SetFileVar)(FileVar);        (*SetFileVar)(FileVar);
   
1247    }    }
1248    else /* IdBPReceive or IdBPAuto */    else /* IdBPReceive or IdBPAuto */
1249      FileVar->OpId = OpBPRcv;      FileVar->OpId = OpBPRcv;
# Line 1063  void QVStart(int mode) Line 1292  void QVStart(int mode)
1292      ProtoEnd();      ProtoEnd();
1293  }  }
1294  }  }
1295    
1296    /*
1297     * $Log$
1298     * Revision 1.16  2007/08/08 15:56:35  maya
1299     * 安全な関数を使用するように変更した。
1300     *
1301     * Revision 1.15  2007/06/06 14:02:53  maya
1302     * プリプロセッサにより構造体が変わってしまうので、INET6 と I18N の #define を逆転させた。
1303     *
1304     * Revision 1.14  2007/05/31 14:39:05  maya
1305     * 接続時に自動的にログ採取を開始できるようにした。
1306     *
1307     * Revision 1.13  2007/05/30 16:04:27  maya
1308     * 標準のログ保存先を指定できるようにした。
1309     *
1310     * Revision 1.12  2007/05/25 09:56:05  yutakapon
1311     * タイムスタンプ付きログで1KBごとに不要な改行が入るバグを修正。
1312     *
1313     * Revision 1.11  2007/05/14 14:07:14  maya
1314     * バッファをクリアしていないので落ちる問題を修正した。
1315     *
1316     * Revision 1.10  2007/05/14 13:29:58  maya
1317     * ログファイル名中の &h を、接続中のホスト名に変換する機能を追加した。
1318     *
1319     * Revision 1.9  2007/01/21 16:18:35  maya
1320     * 表示メッセージの読み込み対応
1321     *
1322     * Revision 1.8  2007/01/04 15:11:44  maya
1323     * 表示メッセージの読み込み対応
1324     *
1325     * Revision 1.7  2006/12/25 16:13:54  yutakapon
1326     * ログ採取中にマクロがストールする問題への修正。
1327     * ログ採取中に一度マクロを止めると、バッファのインデックスが同期取れなくなり、
1328     * 再度マクロを流しても正しいデータが送れないのが原因。
1329     * マクロを停止させた状態でもインデックスの同期を取るようにした。
1330     *
1331     * Revision 1.6  2006/08/28 12:27:16  maya
1332     * デフォルトのログファイル名を指定できるようにした。
1333     *   エディットコントロールを "Additional settings" ダイアログに追加した。
1334     *   teraterm.ini ファイルに LogDefaultName エントリを追加した。
1335     *   ファイル名に strftime のフォーマットを使えるようにした。
1336     *
1337     * Revision 1.5  2006/07/23 14:12:26  yutakakn
1338     * ログに含める日付フォーマットを世界標準書式に変更した。
1339     *
1340     * Revision 1.4  2006/07/22 16:15:54  maya
1341     * ログ記録時に時刻も書き込む機能を追加した。
1342     *
1343     * Revision 1.3  2005/05/07 09:49:24  yutakakn
1344     * teraterm.iniに LogTypePlainText を追加した。
1345     *
1346     * Revision 1.2  2005/02/20 14:51:29  yutakakn
1347     * ログファイルの種別に"plain text"を追加。このオプションが有効の場合は、ログファイルに
1348     * ASCII非表示文字の採取をしない。
1349     *
1350     * 現在、無視するキャラクタは以下のとおり。
1351     *  ・BS
1352     *  ・ASCII(0x00-0x1f)のうち非表示なもの
1353     *
1354     * ただし、例外として以下のものはログ採取対象。
1355     *  ・HT
1356     *  ・CR
1357     *  ・LF
1358     *
1359     */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.16

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