Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/filesys_log.cpp

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

revision 3903 by doda, Fri May 14 12:21:04 2010 UTC revision 3904 by doda, Sat May 22 06:57:02 2010 UTC
# Line 17  Line 17 
17  #include "ttlib.h"  #include "ttlib.h"
18  #include "helpid.h"  #include "helpid.h"
19  #include "dlglib.h"  #include "dlglib.h"
20    #include "vtterm.h"
21    
22  #include "filesys.h"  #include "filesys.h"
23  #include "ftlib.h"  #include "ftlib.h"
24    
25    #define FS_BRACKET_NONE  0
26    #define FS_BRACKET_START 1
27    #define FS_BRACKET_END   2
28    
29  PFileVar LogVar = NULL;  PFileVar LogVar = NULL;
30  PFileVar SendVar = NULL;  PFileVar SendVar = NULL;
31  PFileVar FileVar = NULL;  PFileVar FileVar = NULL;
# Line 31  static BYTE LogLast = 0; Line 36  static BYTE LogLast = 0;
36  BOOL FileLog = FALSE;  BOOL FileLog = FALSE;
37  BOOL BinLog = FALSE;  BOOL BinLog = FALSE;
38  BOOL DDELog = FALSE;  BOOL DDELog = FALSE;
39  static BOOL FileRetrySend, FileRetryEcho, FileCRSend;  static BOOL FileRetrySend, FileRetryEcho, FileCRSend, FileReadEOF, BinaryMode;
40  static BYTE FileByte;  static BYTE FileByte;
41    
42    static int FileBracketMode = FS_BRACKET_NONE;
43    static int FileBracketPtr = 0;
44    static char BracketStartStr[] = "\033[200~";
45    static char BracketEndStr[] = "\033[201~";
46    
47  static BOOL FSend = FALSE;  static BOOL FSend = FALSE;
48    
49  HWND HWndLog = NULL; //steven add  HWND HWndLog = NULL; //steven add
# Line 833  void FileSendStart() Line 843  void FileSendStart()
843          FileRetrySend = FALSE;          FileRetrySend = FALSE;
844          FileRetryEcho = FALSE;          FileRetryEcho = FALSE;
845          FileCRSend = FALSE;          FileCRSend = FALSE;
846            FileReadEOF = FALSE;
847    
848            if (BracketedPasteMode()) {
849                    FileBracketMode = FS_BRACKET_START;
850                    FileBracketPtr = 0;
851                    BinaryMode = TRUE;
852            }
853            else {
854                    FileBracketMode = FS_BRACKET_NONE;
855                    BinaryMode = ts.TransBin;
856            }
857    
858          if (! OpenFTDlg(SendVar))          if (! OpenFTDlg(SendVar))
859                  FileTransEnd(OpSendFile);                  FileTransEnd(OpSendFile);
# Line 878  void FileTransEnd(WORD OpId) Line 899  void FileTransEnd(WORD OpId)
899    
900  int FSOut1(BYTE b)  int FSOut1(BYTE b)
901  {  {
902          if (ts.TransBin > 0)          if (BinaryMode)
903                  return CommBinaryOut(&cv,(PCHAR)&b,1);                  return CommBinaryOut(&cv,(PCHAR)&b,1);
904          else if ((b>=0x20) || (b==0x09) || (b==0x0A) || (b==0x0D))          else if ((b>=0x20) || (b==0x09) || (b==0x0A) || (b==0x0D))
905                  return CommTextOut(&cv,(PCHAR)&b,1);                  return CommTextOut(&cv,(PCHAR)&b,1);
# Line 888  int FSOut1(BYTE b) Line 909  int FSOut1(BYTE b)
909    
910  int FSEcho1(BYTE b)  int FSEcho1(BYTE b)
911  {  {
912          if (ts.TransBin > 0)          if (BinaryMode)
913                  return CommBinaryEcho(&cv,(PCHAR)&b,1);                  return CommBinaryEcho(&cv,(PCHAR)&b,1);
914          else          else
915                  return CommTextEcho(&cv,(PCHAR)&b,1);                  return CommTextEcho(&cv,(PCHAR)&b,1);
# Line 924  void FileSend() Line 945  void FileSend()
945          }          }
946    
947          do {          do {
948                  fc = _lread(SendVar->FileHandle,&FileByte,1);                  if (FileBracketMode == FS_BRACKET_START) {
949                  SendVar->ByteCount = SendVar->ByteCount + fc;                          FileByte = BracketStartStr[FileBracketPtr++];
950                            fc = 1;
951                  if (FileCRSend && (fc==1) && (FileByte==0x0A))  
952                  {                          if (FileBracketPtr >= sizeof(BracketStartStr) - 1) {
953                                    FileBracketMode = FS_BRACKET_END;
954                                    FileBracketPtr = 0;
955                                    BinaryMode = ts.TransBin;
956                            }
957                    }
958                    else if (! FileReadEOF) {
959                          fc = _lread(SendVar->FileHandle,&FileByte,1);                          fc = _lread(SendVar->FileHandle,&FileByte,1);
960                          SendVar->ByteCount = SendVar->ByteCount + fc;                          SendVar->ByteCount = SendVar->ByteCount + fc;
961    
962                            if (FileCRSend && (fc==1) && (FileByte==0x0A)) {
963                                    fc = _lread(SendVar->FileHandle,&FileByte,1);
964                                    SendVar->ByteCount = SendVar->ByteCount + fc;
965                            }
966                    }
967                    else {
968                            fc = 0;
969                  }                  }
970    
971                    if (fc == 0 && FileBracketMode == FS_BRACKET_END) {
972                            FileReadEOF = TRUE;
973                            FileByte = BracketEndStr[FileBracketPtr++];
974                            fc = 1;
975                            BinaryMode = TRUE;
976    
977                            if (FileBracketPtr >= sizeof(BracketEndStr) - 1) {
978                                    FileBracketMode = FS_BRACKET_NONE;
979                                    FileBracketPtr = 0;
980                            }
981                    }
982    
983    
984                  if (fc!=0)                  if (fc!=0)
985                  {                  {
986                          c = FSOut1(FileByte);                          c = FSOut1(FileByte);
# Line 952  void FileSend() Line 1000  void FileSend()
1000                                          return;                                          return;
1001                          }                          }
1002                  }                  }
1003                  if ((fc==0) || (SendVar->ByteCount % 100 == 0))                  if ((fc==0) || ((SendVar->ByteCount % 100 == 0) && (FileBracketPtr == 0))) {
                 {  
1004                          SendDlg->RefreshNum();                          SendDlg->RefreshNum();
1005                          BCOld = SendVar->ByteCount;                          BCOld = SendVar->ByteCount;
1006                          if (fc!=0)                          if (fc!=0)

Legend:
Removed from v.3903  
changed lines
  Added in v.3904

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