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.13 by maya, Wed May 30 16:04:27 2007 UTC revision 1.20 by maya, Fri Nov 30 08:59:11 2007 UTC
# Line 7  Line 7 
7  #include "teraterm.h"  #include "teraterm.h"
8  #include "tttypes.h"  #include "tttypes.h"
9  #include "ttftypes.h"  #include "ttftypes.h"
 #ifdef TERATERM32  
10  #include "tt_res.h"  #include "tt_res.h"
 #else  
 #include "tt_res16.h"  
 #endif  
11  #include "ftdlg.h"  #include "ftdlg.h"
12  #include "protodlg.h"  #include "protodlg.h"
13  #include "ttwinman.h"  #include "ttwinman.h"
# Line 80  BOOL LoadTTFILE() Line 76  BOOL LoadTTFILE()
76  {  {
77    BOOL Err;    BOOL Err;
78    
 #ifdef TERATERM32  
79    if (HTTFILE != NULL)    if (HTTFILE != NULL)
 #else  
   if (HTTFILE >= HINSTANCE_ERROR)  
 #endif  
80    {    {
81      TTFILECount++;      TTFILECount++;
82      return TRUE;      return TRUE;
# Line 92  BOOL LoadTTFILE() Line 84  BOOL LoadTTFILE()
84    else    else
85      TTFILECount = 0;      TTFILECount = 0;
86    
 #ifdef TERATERM32  
87    HTTFILE = LoadLibrary("TTPFILE.DLL");    HTTFILE = LoadLibrary("TTPFILE.DLL");
88    if (HTTFILE == NULL) return FALSE;    if (HTTFILE == NULL) return FALSE;
 #else  
   HTTFILE = LoadLibrary("TTFILE.DLL");  
   if (HTTFILE < HINSTANCE_ERROR) return FALSE;  
 #endif  
89    
90    Err = FALSE;    Err = FALSE;
91    GetSetupFname = (PGetSetupFname)GetProcAddress(HTTFILE,    GetSetupFname = (PGetSetupFname)GetProcAddress(HTTFILE,
# Line 158  BOOL FreeTTFILE() Line 145  BOOL FreeTTFILE()
145    if (TTFILECount==0) return FALSE;    if (TTFILECount==0) return FALSE;
146    TTFILECount--;    TTFILECount--;
147    if (TTFILECount>0) return TRUE;    if (TTFILECount>0) return TRUE;
 #ifdef TERATERM32  
148    if (HTTFILE!=NULL)    if (HTTFILE!=NULL)
 #else  
   if (HTTFILE>=HINSTANCE_ERROR)  
 #endif  
149    {    {
150      FreeLibrary(HTTFILE);      FreeLibrary(HTTFILE);
151      HTTFILE = NULL;      HTTFILE = NULL;
# Line 177  static PProtoDlg PtDlg = NULL; Line 160  static PProtoDlg PtDlg = NULL;
160  BOOL OpenFTDlg(PFileVar fv)  BOOL OpenFTDlg(PFileVar fv)
161  {  {
162    PFileTransDlg FTDlg;    PFileTransDlg FTDlg;
 #ifdef I18N  
163    HWND HFTDlg;    HWND HFTDlg;
164  #endif    char uimsg[MAX_UIMSG];
165    
166    FTDlg = new CFileTransDlg();    FTDlg = new CFileTransDlg();
167        
168    if (FTDlg!=NULL)    if (FTDlg!=NULL)
169    {    {
 #ifdef I18N  
170      FTDlg->Create(fv, &cv, &ts);      FTDlg->Create(fv, &cv, &ts);
 #else  
     FTDlg->Create(fv, &cv);  
 #endif  
171      FTDlg->RefreshNum();      FTDlg->RefreshNum();
172      if (fv->OpId == OpLog)      if (fv->OpId == OpLog)
173        FTDlg->ShowWindow(SW_MINIMIZE);        FTDlg->ShowWindow(SW_MINIMIZE);
# Line 200  BOOL OpenFTDlg(PFileVar fv) Line 178  BOOL OpenFTDlg(PFileVar fv)
178    else    else
179      SendDlg = FTDlg; /* File send */      SendDlg = FTDlg; /* File send */
180    
 #ifdef I18N  
181    HFTDlg=FTDlg->GetSafeHwnd();    HFTDlg=FTDlg->GetSafeHwnd();
182    
183    GetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, uimsg, sizeof(uimsg));
184    get_lang_msg("DLG_FILETRANS_FILENAME", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_FILETRANS_FILENAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
185    SetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg);    SetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg);
186    GetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, uimsg, sizeof(uimsg));
187    get_lang_msg("DLG_FILETRANS_FULLPATH", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_FILETRANS_FULLPATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
188    SetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg);    SetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg);
189    GetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDC_TRANS_TRANS, uimsg, sizeof(uimsg));
190    get_lang_msg("DLG_FILETRANS_TRNAS", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_FILETRANS_TRNAS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
191    SetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg);    SetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg);
192    GetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDCANCEL, uimsg, sizeof(uimsg));
193    get_lang_msg("BTN_CANCEL", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("BTN_CANCEL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
194    SetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg);    SetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg);
195    GetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, uimsg, sizeof(uimsg));
196    get_lang_msg("DLG_FILETRANS_PAUSE", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_FILETRANS_PAUSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
197    SetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg);    SetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg);
198    GetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(HFTDlg, IDC_TRANSHELP, uimsg, sizeof(uimsg));
199    get_lang_msg("BTN_HELP", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("BTN_HELP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
200    SetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg);    SetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg);
 #endif  
201    
202    return (FTDlg!=NULL);    return (FTDlg!=NULL);
203  }  }
# Line 234  BOOL NewFileVar(PFileVar *fv) Line 210  BOOL NewFileVar(PFileVar *fv)
210      if ((*fv)!=NULL)      if ((*fv)!=NULL)
211      {      {
212        memset(*fv, 0, sizeof(TFileVar));        memset(*fv, 0, sizeof(TFileVar));
213        strcpy((*fv)->FullName,ts.FileDir);        strncpy_s((*fv)->FullName, sizeof((*fv)->FullName),ts.FileDir, _TRUNCATE);
214        AppendSlash((*fv)->FullName);        AppendSlash((*fv)->FullName,sizeof((*fv)->FullName));
215        (*fv)->DirLen = strlen((*fv)->FullName);        (*fv)->DirLen = strlen((*fv)->FullName);
216        (*fv)->FileOpen = FALSE;        (*fv)->FileOpen = FALSE;
217        (*fv)->OverWrite = ((ts.FTFlag & FT_RENAME) == 0);        (*fv)->OverWrite = ((ts.FTFlag & FT_RENAME) == 0);
# Line 264  void FreeFileVar(PFileVar *fv) Line 240  void FreeFileVar(PFileVar *fv)
240  }  }
241    
242  // &h をホスト名に置換 (2007.5.14)  // &h をホスト名に置換 (2007.5.14)
243  void ConvertLogname(char *c)  void ConvertLogname(char *c, int destlen)
244  {  {
245    char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;    char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;
246    
# Line 276  void ConvertLogname(char *c) Line 252  void ConvertLogname(char *c)
252          case 'h':          case 'h':
253            if (cv.Open) {            if (cv.Open) {
254              if (cv.PortType == IdTCPIP) {              if (cv.PortType == IdTCPIP) {
255                _snprintf(buf2, sizeof(buf2), "%s%s", buf, ts.HostName);                strncat_s(buf,sizeof(buf),ts.HostName,_TRUNCATE);
               strncpy(buf, buf2, sizeof(buf)-strlen(buf)-1);  
256              }              }
257              else if (cv.PortType == IdSerial) {              else if (cv.PortType == IdSerial) {
258                _snprintf(buf2, sizeof(buf2), "%sCOM%d", buf, ts.ComPort);                strncpy_s(buf2,sizeof(buf2),buf,_TRUNCATE);
259                strncpy(buf, buf2, sizeof(buf)-strlen(buf)-1);                _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%sCOM%d", buf2, ts.ComPort);
260              }              }
261            }            }
262            break;            break;
263          default:          default:
264            if (strlen(buf) < sizeof(buf)-3) {            strncpy_s(buf2,sizeof(buf2),p,2);
265              strncat(buf, p, 2);            strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
           }  
266        }        }
267        p++;        p++;
268      }      }
269      else {      else {
270            if (strlen(buf) < sizeof(buf)-2) {            strncpy_s(buf2,sizeof(buf2),p,1);
271              strncat(buf, p, 1);            strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
           }  
272      }      }
273      p++;      p++;
274    }    }
275    strcpy(c, buf);    strncpy_s(c, destlen, buf, _TRUNCATE);
276  }  }
277    
278  extern "C" {  extern "C" {
# Line 342  void LogStart() Line 315  void LogStart()
315                                                    (0x2000 * ts.LogTimestamp));                                                    (0x2000 * ts.LogTimestamp));
316    
317                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)
318                  strncat(LogVar->FullName, ts.LogDefaultName, sizeof(LogVar->FullName));                  strncat_s(LogVar->FullName, sizeof(LogVar->FullName), ts.LogDefaultName, _TRUNCATE);
319    
320                  ParseStrftimeFileName(LogVar->FullName);                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
321    
322                  // &h をホスト名に置換 (2007.5.14)                  // &h をホスト名に置換 (2007.5.14)
323                  ConvertLogname(LogVar->FullName);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
324    
325                    strncpy_s(LogVar->LogDefaultPath, sizeof(LogVar->LogDefaultPath), ts.LogDefaultPath, _TRUNCATE);
326                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))
327                  {                  {
328                          FreeFileVar(&LogVar);                          FreeFileVar(&LogVar);
# Line 380  void LogStart() Line 354  void LogStart()
354                  char FileName[MAX_PATH];                  char FileName[MAX_PATH];
355    
356                  // フルパス化                  // フルパス化
357                  strncpy(FileName, LogVar->FullName, sizeof(FileName)-1);                  strncpy_s(FileName, sizeof(FileName), LogVar->FullName, _TRUNCATE);
358                  ConvFName(logdir,FileName,"",LogVar->FullName);                  ConvFName(logdir,FileName,sizeof(FileName),"",LogVar->FullName,sizeof(LogVar->FullName));
359    
360                  ParseStrftimeFileName(LogVar->FullName);                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
361    
362                  // &h をホスト名に置換 (2007.5.14)                  // &h をホスト名に置換 (2007.5.14)
363                  ConvertLogname(LogVar->FullName);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
364                  (*SetFileVar)(LogVar);                  (*SetFileVar)(LogVar);
365          }          }
366    
# Line 533  void CommentLogToFile(char *buf, int siz Line 507  void CommentLogToFile(char *buf, int siz
507          DWORD wrote;          DWORD wrote;
508    
509          if (LogVar == NULL || !LogVar->FileOpen) {          if (LogVar == NULL || !LogVar->FileOpen) {
 #ifdef I18N  
510                  char uimsg[MAX_UIMSG];                  char uimsg[MAX_UIMSG];
511                  strcpy(uimsg, "ERROR");                  get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
512                  get_lang_msg("MSG_ERROR", uimsg, ts.UILanguageFile);                  get_lang_msg("MSG_COMMENT_LOG_OPEN_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
513                  strcpy(ts.UIMsg, "It is not opened by the log file yet.");                                           "It is not opened by the log file yet.", ts.UILanguageFile);
                 get_lang_msg("MSG_COMMENT_LOG_OPEN_ERROR", ts.UIMsg, ts.UILanguageFile);  
514                  ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);                  ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);
 #else  
                 ::MessageBox(NULL, "It is not opened by the log file yet.", "ERROR", MB_OK|MB_ICONEXCLAMATION);  
 #endif  
515                  return;                  return;
516          }          }
517    
# Line 899  BOOL OpenProtoDlg(PFileVar fv, int IdPro Line 868  BOOL OpenProtoDlg(PFileVar fv, int IdPro
868  {  {
869    int vsize;    int vsize;
870    PProtoDlg pd;    PProtoDlg pd;
 #ifdef I18N  
871    HWND Hpd;    HWND Hpd;
872  #endif    char uimsg[MAX_UIMSG];
873    
874    ProtoId = IdProto;    ProtoId = IdProto;
875    
# Line 953  BOOL OpenProtoDlg(PFileVar fv, int IdPro Line 921  BOOL OpenProtoDlg(PFileVar fv, int IdPro
921      ProtoVar = NULL;      ProtoVar = NULL;
922      return FALSE;      return FALSE;
923    }    }
 #ifdef I18N  
924    pd->Create(fv,&ts);    pd->Create(fv,&ts);
 #else  
   pd->Create(fv);  
 #endif  
925    
 #ifdef I18N  
926    Hpd=pd->GetSafeHwnd();    Hpd=pd->GetSafeHwnd();
927    
928    GetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(Hpd, IDC_PROT_FILENAME, uimsg, sizeof(uimsg));
929    get_lang_msg("DLG_PROT_FIELNAME", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_PROT_FIELNAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
930    SetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg);    SetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg);
931    GetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(Hpd, IDC_PROT_PROT, uimsg, sizeof(uimsg));
932    get_lang_msg("DLG_PROT_PROTO", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_PROT_PROTO", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
933    SetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg);    SetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg);
934    GetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(Hpd, IDC_PROT_PACKET, uimsg, sizeof(uimsg));
935    get_lang_msg("DLG_PROT_PACKET", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_PROT_PACKET", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
936    SetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg);    SetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg);
937    GetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(Hpd, IDC_PROT_TRANS, uimsg, sizeof(uimsg));
938    get_lang_msg("DLG_PROT_TRANS", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("DLG_PROT_TRANS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
939    SetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg);    SetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg);
940    GetDlgItemText(Hpd, IDCANCEL, ts.UIMsg, sizeof(ts.UIMsg));    GetDlgItemText(Hpd, IDCANCEL, uimsg, sizeof(uimsg));
941    get_lang_msg("BTN_CANCEL", ts.UIMsg, ts.UILanguageFile);    get_lang_msg("BTN_CANCEL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
942    SetDlgItemText(Hpd, IDCANCEL, ts.UIMsg);    SetDlgItemText(Hpd, IDCANCEL, ts.UIMsg);
943  #endif  
     
944    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);
945    
946    PtDlg = pd;    PtDlg = pd;
# Line 1295  void QVStart(int mode) Line 1257  void QVStart(int mode)
1257      ProtoEnd();      ProtoEnd();
1258  }  }
1259  }  }
   
 /*  
  * $Log$  
  * Revision 1.13  2007/05/30 16:04:27  maya  
  * 標準のログ保存先を指定できるようにした。  
  *  
  * Revision 1.12  2007/05/25 09:56:05  yutakapon  
  * タイムスタンプ付きログで1KBごとに不要な改行が入るバグを修正。  
  *  
  * Revision 1.11  2007/05/14 14:07:14  maya  
  * バッファをクリアしていないので落ちる問題を修正した。  
  *  
  * Revision 1.10  2007/05/14 13:29:58  maya  
  * ログファイル名中の &h を、接続中のホスト名に変換する機能を追加した。  
  *  
  * Revision 1.9  2007/01/21 16:18:35  maya  
  * 表示メッセージの読み込み対応  
  *  
  * Revision 1.8  2007/01/04 15:11:44  maya  
  * 表示メッセージの読み込み対応  
  *  
  * Revision 1.7  2006/12/25 16:13:54  yutakapon  
  * ログ採取中にマクロがストールする問題への修正。  
  * ログ採取中に一度マクロを止めると、バッファのインデックスが同期取れなくなり、  
  * 再度マクロを流しても正しいデータが送れないのが原因。  
  * マクロを停止させた状態でもインデックスの同期を取るようにした。  
  *  
  * Revision 1.6  2006/08/28 12:27:16  maya  
  * デフォルトのログファイル名を指定できるようにした。  
  *   エディットコントロールを "Additional settings" ダイアログに追加した。  
  *   teraterm.ini ファイルに LogDefaultName エントリを追加した。  
  *   ファイル名に strftime のフォーマットを使えるようにした。  
  *  
  * Revision 1.5  2006/07/23 14:12:26  yutakakn  
  * ログに含める日付フォーマットを世界標準書式に変更した。  
  *  
  * Revision 1.4  2006/07/22 16:15:54  maya  
  * ログ記録時に時刻も書き込む機能を追加した。  
  *  
  * Revision 1.3  2005/05/07 09:49:24  yutakakn  
  * teraterm.iniに LogTypePlainText を追加した。  
  *  
  * Revision 1.2  2005/02/20 14:51:29  yutakakn  
  * ログファイルの種別に"plain text"を追加。このオプションが有効の場合は、ログファイルに  
  * ASCII非表示文字の採取をしない。  
  *  
  * 現在、無視するキャラクタは以下のとおり。  
  *  ・BS  
  *  ・ASCII(0x00-0x1f)のうち非表示なもの  
  *  
  * ただし、例外として以下のものはログ採取対象。  
  *  ・HT  
  *  ・CR  
  *  ・LF  
  *  
  */  

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.20

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