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.15 by maya, Wed Jun 6 14:02:53 2007 UTC revision 1.16 by maya, Wed Aug 8 15:56:35 2007 UTC
# Line 234  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 264  void FreeFileVar(PFileVar *fv) Line 264  void FreeFileVar(PFileVar *fv)
264  }  }
265    
266  // &h をホスト名に置換 (2007.5.14)  // &h をホスト名に置換 (2007.5.14)
267  void ConvertLogname(char *c)  void ConvertLogname(char *c, int destlen)
268  {  {
269    char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;    char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;
270    
# Line 276  void ConvertLogname(char *c) Line 276  void ConvertLogname(char *c)
276          case 'h':          case 'h':
277            if (cv.Open) {            if (cv.Open) {
278              if (cv.PortType == IdTCPIP) {              if (cv.PortType == IdTCPIP) {
279                _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);  
280              }              }
281              else if (cv.PortType == IdSerial) {              else if (cv.PortType == IdSerial) {
282                _snprintf(buf2, sizeof(buf2), "%sCOM%d", buf, ts.ComPort);                strncpy_s(buf2,sizeof(buf2),buf,_TRUNCATE);
283                strncpy(buf, buf2, sizeof(buf)-strlen(buf)-1);                _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%sCOM%d", buf2, ts.ComPort);
284              }              }
285            }            }
286            break;            break;
287          default:          default:
288            if (strlen(buf) < sizeof(buf)-3) {            strncpy_s(buf2,sizeof(buf2),p,2);
289              strncat(buf, p, 2);            strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
           }  
290        }        }
291        p++;        p++;
292      }      }
293      else {      else {
294            if (strlen(buf) < sizeof(buf)-2) {            strncpy_s(buf2,sizeof(buf2),p,1);
295              strncat(buf, p, 1);            strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
           }  
296      }      }
297      p++;      p++;
298    }    }
299    strcpy(c, buf);    strncpy_s(c, destlen, buf, _TRUNCATE);
300  }  }
301    
302  extern "C" {  extern "C" {
# Line 342  void LogStart() Line 339  void LogStart()
339                                                    (0x2000 * ts.LogTimestamp));                                                    (0x2000 * ts.LogTimestamp));
340    
341                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)
342                  strncat(LogVar->FullName, ts.LogDefaultName, sizeof(LogVar->FullName)-1);                  strncat_s(LogVar->FullName, sizeof(LogVar->FullName), ts.LogDefaultName, _TRUNCATE);
                 LogVar->FullName[sizeof(LogVar->FullName)-1] = '\0';  
343    
344                  ParseStrftimeFileName(LogVar->FullName);                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
345    
346                  // &h をホスト名に置換 (2007.5.14)                  // &h をホスト名に置換 (2007.5.14)
347                  ConvertLogname(LogVar->FullName);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
348    
349                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))
350                  {                  {
# Line 381  void LogStart() Line 377  void LogStart()
377                  char FileName[MAX_PATH];                  char FileName[MAX_PATH];
378    
379                  // フルパス化                  // フルパス化
380                  strncpy(FileName, LogVar->FullName, sizeof(FileName)-1);                  strncpy_s(FileName, sizeof(FileName), LogVar->FullName, _TRUNCATE);
381                  FileName[sizeof(FileName)-1] = '\0';                  ConvFName(logdir,FileName,sizeof(FileName),"",LogVar->FullName,sizeof(LogVar->FullName));
                 ConvFName(logdir,FileName,"",LogVar->FullName);  
382    
383                  ParseStrftimeFileName(LogVar->FullName);                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
384    
385                  // &h をホスト名に置換 (2007.5.14)                  // &h をホスト名に置換 (2007.5.14)
386                  ConvertLogname(LogVar->FullName);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
387                  (*SetFileVar)(LogVar);                  (*SetFileVar)(LogVar);
388          }          }
389    
# Line 537  void CommentLogToFile(char *buf, int siz Line 532  void CommentLogToFile(char *buf, int siz
532          if (LogVar == NULL || !LogVar->FileOpen) {          if (LogVar == NULL || !LogVar->FileOpen) {
533  #ifndef NO_I18N  #ifndef NO_I18N
534                  char uimsg[MAX_UIMSG];                  char uimsg[MAX_UIMSG];
535                  strcpy(uimsg, "ERROR");                  strncpy_s(uimsg, sizeof(uimsg), "ERROR", _TRUNCATE);
536                  get_lang_msg("MSG_ERROR", uimsg, ts.UILanguageFile);                  get_lang_msg("MSG_ERROR", uimsg, ts.UILanguageFile);
537                  strcpy(ts.UIMsg, "It is not opened by the log file yet.");                  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);                  get_lang_msg("MSG_COMMENT_LOG_OPEN_ERROR", ts.UIMsg, ts.UILanguageFile);
539                  ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);                  ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);
540  #else  #else
# Line 1300  void QVStart(int mode) Line 1295  void QVStart(int mode)
1295    
1296  /*  /*
1297   * $Log$   * $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   * Revision 1.15  2007/06/06 14:02:53  maya
1302   * プリプロセッサにより構造体が変わってしまうので、INET6 と I18N の #define を逆転させた。   * プリプロセッサにより構造体が変わってしまうので、INET6 と I18N の #define を逆転させた。
1303   *   *

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

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