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.1.1 by yutakakn, Mon Nov 15 14:43:41 2004 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 64  PProtoCancel ProtoCancel; Line 60  PProtoCancel ProtoCancel;
60  #define IdProtoTimeOutProc 9  #define IdProtoTimeOutProc 9
61  #define IdProtoCancel    10  #define IdProtoCancel    10
62    
63    /*
64       Line Head flag for timestamping
65       2007.05.24 Gentaro
66    */
67    enum enumLineEnd {
68            Line_Other = 0,
69            Line_LineHead = 1,
70            Line_FileHead = 2,
71    };
72    
73    enum enumLineEnd eLineEnd = Line_LineHead;
74    
75  BOOL LoadTTFILE()  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 80  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 146  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 165  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;
163      HWND HFTDlg;
164      char uimsg[MAX_UIMSG];
165    
166    FTDlg = new CFileTransDlg();    FTDlg = new CFileTransDlg();
167        
168    if (FTDlg!=NULL)    if (FTDlg!=NULL)
169    {    {
170      FTDlg->Create(fv, &cv);      FTDlg->Create(fv, &cv, &ts);
171      FTDlg->RefreshNum();      FTDlg->RefreshNum();
172      if (fv->OpId == OpLog)      if (fv->OpId == OpLog)
173        FTDlg->ShowWindow(SW_MINIMIZE);        FTDlg->ShowWindow(SW_MINIMIZE);
# Line 181  BOOL OpenFTDlg(PFileVar fv) Line 178  BOOL OpenFTDlg(PFileVar fv)
178    else    else
179      SendDlg = FTDlg; /* File send */      SendDlg = FTDlg; /* File send */
180    
181      HFTDlg=FTDlg->GetSafeHwnd();
182    
183      GetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, uimsg, sizeof(uimsg));
184      get_lang_msg("DLG_FILETRANS_FILENAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
185      SetDlgItemText(HFTDlg, IDC_TRANS_FILENAME, ts.UIMsg);
186      GetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, uimsg, sizeof(uimsg));
187      get_lang_msg("DLG_FILETRANS_FULLPATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
188      SetDlgItemText(HFTDlg, IDC_FULLPATH_LABEL, ts.UIMsg);
189      GetDlgItemText(HFTDlg, IDC_TRANS_TRANS, uimsg, sizeof(uimsg));
190      get_lang_msg("DLG_FILETRANS_TRNAS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
191      SetDlgItemText(HFTDlg, IDC_TRANS_TRANS, ts.UIMsg);
192      GetDlgItemText(HFTDlg, IDCANCEL, uimsg, sizeof(uimsg));
193      get_lang_msg("BTN_CANCEL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
194      SetDlgItemText(HFTDlg, IDCANCEL, ts.UIMsg);
195      GetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, uimsg, sizeof(uimsg));
196      get_lang_msg("DLG_FILETRANS_PAUSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
197      SetDlgItemText(HFTDlg, IDC_TRANSPAUSESTART, ts.UIMsg);
198      GetDlgItemText(HFTDlg, IDC_TRANSHELP, uimsg, sizeof(uimsg));
199      get_lang_msg("BTN_HELP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
200      SetDlgItemText(HFTDlg, IDC_TRANSHELP, ts.UIMsg);
201    
202    return (FTDlg!=NULL);    return (FTDlg!=NULL);
203  }  }
204    
# Line 192  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 221  void FreeFileVar(PFileVar *fv) Line 239  void FreeFileVar(PFileVar *fv)
239    }    }
240  }  }
241    
242    // &h をホスト名に置換 (2007.5.14)
243    void ConvertLogname(char *c, int destlen)
244    {
245      char buf[MAXPATHLEN], buf2[MAXPATHLEN], *p = c;
246    
247      memset(buf, 0, sizeof(buf));
248    
249      while(*p != '\0') {
250        if (*p == '&' && *(p+1) != '\0') {
251          switch (*(p+1)) {
252            case 'h':
253              if (cv.Open) {
254                if (cv.PortType == IdTCPIP) {
255                  strncat_s(buf,sizeof(buf),ts.HostName,_TRUNCATE);
256                }
257                else if (cv.PortType == IdSerial) {
258                  strncpy_s(buf2,sizeof(buf2),buf,_TRUNCATE);
259                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%sCOM%d", buf2, ts.ComPort);
260                }
261              }
262              break;
263            default:
264              strncpy_s(buf2,sizeof(buf2),p,2);
265              strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
266          }
267          p++;
268        }
269        else {
270              strncpy_s(buf2,sizeof(buf2),p,1);
271              strncat_s(buf,sizeof(buf),buf2,_TRUNCATE);
272        }
273        p++;
274      }
275      strncpy_s(c, destlen, buf, _TRUNCATE);
276    }
277    
278  extern "C" {  extern "C" {
279  void LogStart()  void LogStart()
280  {  {
281    LONG Option;          LONG Option;
282            char *logdir;
283    
284    if ((FileLog) || (BinLog)) return;          if ((FileLog) || (BinLog)) return;
285    
286    if (! LoadTTFILE()) return;          if (! LoadTTFILE()) return;
287    if (! NewFileVar(&LogVar))          if (! NewFileVar(&LogVar))
288    {          {
289      FreeTTFILE();                  FreeTTFILE();
290      return;                  return;
291    }          }
292    LogVar->OpId = OpLog;          LogVar->OpId = OpLog;
293    
294    if (strlen(&(LogVar->FullName[LogVar->DirLen]))==0)          if (strlen(ts.LogDefaultPath) > 0) {
295    {                  logdir = ts.LogDefaultPath;
296      Option = MAKELONG(ts.TransBin,ts.Append);          }
297      if (! (*GetTransFname)(LogVar, ts.FileDir, GTF_LOG, &Option))          else if (strlen(ts.FileDir) > 0) {
298      {                  logdir = ts.FileDir;
299        FreeFileVar(&LogVar);          }
300        FreeTTFILE();          else {
301        return;                  logdir = ts.HomeDir;
302      }          }
     ts.TransBin = LOWORD(Option);  
     ts.Append = HIWORD(Option);  
   }  
   else  
     (*SetFileVar)(LogVar);  
303    
304    if (ts.TransBin > 0)          if (strlen(&(LogVar->FullName[LogVar->DirLen]))==0)
305    {          {
306      BinLog = TRUE;                  // LOWORD
307      FileLog = FALSE;                  // 0x0001 = Binary
308      if (! CreateBinBuf())                  // HIWORD
309      {                  // 0x0001 = Append
310        FileTransEnd(OpLog);                  // 0x1000 = plain text (2005.2.20 yutaka)
311        return;                  // 0x2000 = timestamp (2006.7.23 maya)
312      }                  // teraterm.iniの設定を見てからデフォルトオプションを決める。(2005.5.7 yutaka)
313    }                  Option = MAKELONG(ts.TransBin,ts.Append |
314    else {                                                    (0x1000 * ts.LogTypePlainText) |
315      BinLog = FALSE;                                                    (0x2000 * ts.LogTimestamp));
316      FileLog = TRUE;  
317      if (! CreateLogBuf())                  // ログのデフォルトファイル名を設定 (2006.8.28 maya)
318      {                  strncat_s(LogVar->FullName, sizeof(LogVar->FullName), ts.LogDefaultName, _TRUNCATE);
       FileTransEnd(OpLog);  
       return;  
     }  
   }  
   cv.LStart = cv.LogPtr;  
   cv.LCount = 0;  
319    
320    HelpId = HlpFileLog;                  ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
321    if (ts.Append > 0)  
322    {                  // &h をホスト名に置換 (2007.5.14)
323      LogVar->FileHandle = _lopen(LogVar->FullName,OF_WRITE);                  ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
324      if (LogVar->FileHandle>0)  
325        _llseek(LogVar->FileHandle,0,2);                  strncpy_s(LogVar->LogDefaultPath, sizeof(LogVar->LogDefaultPath), ts.LogDefaultPath, _TRUNCATE);
326      else                  if (! (*GetTransFname)(LogVar, logdir, GTF_LOG, &Option))
327        LogVar->FileHandle = _lcreat(LogVar->FullName,0);                  {
328    }                          FreeFileVar(&LogVar);
329    else                          FreeTTFILE();
330      LogVar->FileHandle = _lcreat(LogVar->FullName,0);                          return;
331    LogVar->FileOpen = (LogVar->FileHandle>0);                  }
332    if (! LogVar->FileOpen)                  ts.TransBin = LOWORD(Option);
333    {                  ts.Append = HIWORD(Option);
334      FileTransEnd(OpLog);  
335      return;                  if (ts.Append & 0x1000) {
336    }                          ts.LogTypePlainText = 1;
337    LogVar->ByteCount = 0;                  } else {
338                            ts.LogTypePlainText = 0;
339                    }
340    
341                    if (ts.Append & 0x2000) {
342                            ts.LogTimestamp = 1;
343                    }
344                    else {
345                            ts.LogTimestamp = 0;
346                    }
347    
348                    ts.Append &= 0x1; // 1bitにマスクする
349    
350            }
351            else {
352                    // LogVar->DirLen = 0 だとここに来る
353                    // フルパス・相対パスともに LogVar->FullName に入れておく必要がある
354                    char FileName[MAX_PATH];
355    
356                    // フルパス化
357                    strncpy_s(FileName, sizeof(FileName), LogVar->FullName, _TRUNCATE);
358                    ConvFName(logdir,FileName,sizeof(FileName),"",LogVar->FullName,sizeof(LogVar->FullName));
359    
360                    ParseStrftimeFileName(LogVar->FullName, sizeof(LogVar->FullName));
361    
362                    // &h をホスト名に置換 (2007.5.14)
363                    ConvertLogname(LogVar->FullName, sizeof(LogVar->FullName));
364                    (*SetFileVar)(LogVar);
365            }
366    
367    if (! OpenFTDlg(LogVar))          if (ts.TransBin > 0)
368      FileTransEnd(OpLog);          {
369                    BinLog = TRUE;
370                    FileLog = FALSE;
371                    if (! CreateBinBuf())
372                    {
373                            FileTransEnd(OpLog);
374                            return;
375                    }
376            }
377            else {
378                    BinLog = FALSE;
379                    FileLog = TRUE;
380                    if (! CreateLogBuf())
381                    {
382                            FileTransEnd(OpLog);
383                            return;
384                    }
385            }
386            cv.LStart = cv.LogPtr;
387            cv.LCount = 0;
388    
389            HelpId = HlpFileLog;
390            /* 2007.05.24 Gentaro */
391            eLineEnd = Line_LineHead;
392    
393            if (ts.Append > 0)
394            {
395                    LogVar->FileHandle = _lopen(LogVar->FullName,OF_WRITE);
396                    if (LogVar->FileHandle>0){
397                            _llseek(LogVar->FileHandle,0,2);
398                            /* 2007.05.24 Gentaro
399                                    If log file already exists,
400                                    a newline is inserted before the first timestamp.
401                            */
402                            eLineEnd = Line_FileHead;
403                    }
404                    else
405                            LogVar->FileHandle = _lcreat(LogVar->FullName,0);
406            }
407            else
408                    LogVar->FileHandle = _lcreat(LogVar->FullName,0);
409            LogVar->FileOpen = (LogVar->FileHandle>0);
410            if (! LogVar->FileOpen)
411            {
412                    FileTransEnd(OpLog);
413                    return;
414            }
415            LogVar->ByteCount = 0;
416    
417            if (! OpenFTDlg(LogVar))
418                    FileTransEnd(OpLog);
419  }  }
420  }  }
421    
# Line 326  void LogPut1(BYTE b) Line 448  void LogPut1(BYTE b)
448      }      }
449      else cv.DCount++;      else cv.DCount++;
450    }    }
451    else    else {
452      cv.DCount = 0;      cv.DCount = 0;
453            // ログ採取中にマクロがストールする問題への修正。
454            // ログ採取中に一度マクロを止めると、バッファのインデックスが同期取れなくなり、
455            // 再度マクロを流しても正しいデータが送れないのが原因。
456            // マクロを停止させた状態でもインデックスの同期を取るようにした。
457            // (2006.12.26 yutaka)
458        cv.DStart = cv.LogPtr;
459      }
460  }  }
461    
462  void Log1Byte(BYTE b)  void Log1Byte(BYTE b)
# Line 378  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) {
510                  ::MessageBox(NULL, "It is not opened by the log file yet.", "ERROR", MB_OK|MB_ICONEXCLAMATION);                  char uimsg[MAX_UIMSG];
511                    get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
512                    get_lang_msg("MSG_COMMENT_LOG_OPEN_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
513                                             "It is not opened by the log file yet.", ts.UILanguageFile);
514                    ::MessageBox(NULL, ts.UIMsg, uimsg, MB_OK|MB_ICONEXCLAMATION);
515                  return;                  return;
516          }          }
517    
518          logfile_lock();          logfile_lock();
519          WriteFile((HANDLE)LogVar->FileHandle, buf, size, &wrote, NULL);          WriteFile((HANDLE)LogVar->FileHandle, buf, size, &wrote, NULL);
520          WriteFile((HANDLE)LogVar->FileHandle, "\r\n", 2, &wrote, NULL); // 改行          WriteFile((HANDLE)LogVar->FileHandle, "\r\n", 2, &wrote, NULL); // 改行
521            /* Set Line End Flag
522                    2007.05.24 Gentaro
523            */
524            eLineEnd = Line_LineHead;
525          logfile_unlock();          logfile_unlock();
526  }  }
527    
# Line 420  void LogToFile() Line 557  void LogToFile()
557          {          {
558                  if (((cv.FilePause & OpLog)==0) && (! cv.ProtoFlag))                  if (((cv.FilePause & OpLog)==0) && (! cv.ProtoFlag))
559                  {                  {
560                            // 時刻を書き出す(2006.7.23 maya)
561                            // 日付フォーマットを日本ではなく世界標準に変更した (2006.7.23 yutaka)
562                            /* 2007.05.24 Gentaro */
563                            if ( ts.LogTimestamp && eLineEnd ) {
564    #if 0
565                                    SYSTEMTIME      LocalTime;
566                                    GetLocalTime(&LocalTime);
567                                    char strtime[27];
568    
569                                    // format time
570                                    sprintf(strtime, "[%04d/%02d/%02d %02d:%02d:%02d.%03d] ",
571                                                    LocalTime.wYear, LocalTime.wMonth,LocalTime.wDay,
572                                                    LocalTime.wHour, LocalTime.wMinute, LocalTime.wSecond,
573                                                    LocalTime.wMilliseconds);
574    #else
575                                            time_t tick = time(NULL);
576                                            char *strtime = ctime(&tick);
577    #endif
578                                    /* 2007.05.24 Gentaro */
579                                    if( eLineEnd == Line_FileHead ){
580                                            _lwrite(LogVar->FileHandle,"\r\n",2);
581                                    }
582                                    _lwrite(LogVar->FileHandle,"[",1);
583                                    // 変換した文字列の終端に \n が含まれているので取り除く。
584                                    _lwrite(LogVar->FileHandle, strtime, strlen(strtime) - 1);
585                                    _lwrite(LogVar->FileHandle,"] ",2);
586                            }
587                            
588                            /* 2007.05.24 Gentaro */
589                            if( b == 0x0a ){
590                                    eLineEnd = Line_LineHead; /* set endmark*/
591                            }
592                            else {
593                                    eLineEnd = Line_Other; /* clear endmark*/
594                            }
595    
596                          _lwrite(LogVar->FileHandle,(PCHAR)&b,1);                          _lwrite(LogVar->FileHandle,(PCHAR)&b,1);
597                          (LogVar->ByteCount)++;                          (LogVar->ByteCount)++;
598                  }                  }
# Line 520  void FileSendStart() Line 693  void FileSendStart()
693    if (strlen(&(SendVar->FullName[SendVar->DirLen]))==0)    if (strlen(&(SendVar->FullName[SendVar->DirLen]))==0)
694    {    {
695      Option = MAKELONG(ts.TransBin,0);      Option = MAKELONG(ts.TransBin,0);
696            SendVar->FullName[0] = 0;
697      if (! (*GetTransFname)(SendVar, ts.FileDir, GTF_SEND, &Option))      if (! (*GetTransFname)(SendVar, ts.FileDir, GTF_SEND, &Option))
698      {          {
699        FileTransEnd(OpSendFile);        FileTransEnd(OpSendFile);
700        return;        return;
701      }      }
# Line 694  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;
871      HWND Hpd;
872      char uimsg[MAX_UIMSG];
873    
874    ProtoId = IdProto;    ProtoId = IdProto;
875    
# Line 745  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    }    }
924    pd->Create(fv);    pd->Create(fv,&ts);
925      
926      Hpd=pd->GetSafeHwnd();
927    
928      GetDlgItemText(Hpd, IDC_PROT_FILENAME, uimsg, sizeof(uimsg));
929      get_lang_msg("DLG_PROT_FIELNAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
930      SetDlgItemText(Hpd, IDC_PROT_FILENAME, ts.UIMsg);
931      GetDlgItemText(Hpd, IDC_PROT_PROT, uimsg, sizeof(uimsg));
932      get_lang_msg("DLG_PROT_PROTO", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
933      SetDlgItemText(Hpd, IDC_PROT_PROT, ts.UIMsg);
934      GetDlgItemText(Hpd, IDC_PROT_PACKET, uimsg, sizeof(uimsg));
935      get_lang_msg("DLG_PROT_PACKET", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
936      SetDlgItemText(Hpd, IDC_PROT_PACKET, ts.UIMsg);
937      GetDlgItemText(Hpd, IDC_PROT_TRANS, uimsg, sizeof(uimsg));
938      get_lang_msg("DLG_PROT_TRANS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
939      SetDlgItemText(Hpd, IDC_PROT_TRANS, ts.UIMsg);
940      GetDlgItemText(Hpd, IDCANCEL, uimsg, sizeof(uimsg));
941      get_lang_msg("BTN_CANCEL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
942      SetDlgItemText(Hpd, IDCANCEL, ts.UIMsg);
943    
944    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);    (*ProtoInit)(ProtoId,FileVar,ProtoVar,&cv,&ts);
945    
946    PtDlg = pd;    PtDlg = pd;
# Line 874  void KermitStart(int mode) Line 1068  void KermitStart(int mode)
1068        }        }
1069        else        else
1070          (*SetFileVar)(FileVar);          (*SetFileVar)(FileVar);
1071        break;            break;
1072      case IdKmtReceive:      case IdKmtReceive:
1073        FileVar->OpId = OpKmtRcv;        FileVar->OpId = OpKmtRcv;
1074        break;        break;
# Line 891  void KermitStart(int mode) Line 1085  void KermitStart(int mode)
1085        }        }
1086        else        else
1087          (*SetFileVar)(FileVar);          (*SetFileVar)(FileVar);
1088        break;            break;
1089      case IdKmtFinish:      case IdKmtFinish:
1090        FileVar->OpId = OpKmtFin;        FileVar->OpId = OpKmtFin;
1091        break;        break;
# Line 1006  void BPStart(int mode) Line 1200  void BPStart(int mode)
1200      FileVar->OpId = OpBPSend;      FileVar->OpId = OpBPSend;
1201      if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0)      if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0)
1202      {      {
1203              FileVar->FullName[0] = 0;
1204        if (! (*GetTransFname)(FileVar, ts.FileDir, GTF_BP, &Option))        if (! (*GetTransFname)(FileVar, ts.FileDir, GTF_BP, &Option))
1205        {            {
1206          ProtoEnd();          ProtoEnd();
1207          return;          return;
1208        }        }
1209      }      }
1210      else      else
1211        (*SetFileVar)(FileVar);        (*SetFileVar)(FileVar);
   
1212    }    }
1213    else /* IdBPReceive or IdBPAuto */    else /* IdBPReceive or IdBPAuto */
1214      FileVar->OpId = OpBPRcv;      FileVar->OpId = OpBPRcv;

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

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