| 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; |
| 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 |
| 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); |
| 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); |
| 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); |
| 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); |
| 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) |