Revision: 9060 https://osdn.net/projects/ttssh2/scm/svn/commits/9060 Author: zmatsuo Date: 2020-12-20 21:08:03 +0900 (Sun, 20 Dec 2020) Log Message: ----------- kermit.c のみで使用する構造体を移動 - ttftypes.h から kermit.c へ移動 Modified Paths: -------------- trunk/teraterm/common/ttftypes.h trunk/teraterm/teraterm/filesys_proto.cpp trunk/teraterm/ttpfile/kermit.c trunk/teraterm/ttpfile/kermit.h trunk/teraterm/ttpfile/ttfile_proto.cpp -------------- next part -------------- Modified: trunk/teraterm/common/ttftypes.h =================================================================== --- trunk/teraterm/common/ttftypes.h 2020-12-20 12:07:51 UTC (rev 9059) +++ trunk/teraterm/common/ttftypes.h 2020-12-20 12:08:03 UTC (rev 9060) @@ -89,6 +89,7 @@ #define TitQVRcv "Quick-VAN Receive" #define TitQVSend "Quick-VAN Send" +#if 0 typedef struct { int MAXL; BYTE TIME,NPAD,PADC,EOL,QCTL,QBIN,CHKT,REPT,CAPAS,WINDO,MAXLX1,MAXLX2; @@ -141,6 +142,7 @@ #define ServerInit 9 #define GetInit 10 #define Finish 11 +#endif #if 0 /* XMODEM */ Modified: trunk/teraterm/teraterm/filesys_proto.cpp =================================================================== --- trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:07:51 UTC (rev 9059) +++ trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:08:03 UTC (rev 9060) @@ -64,6 +64,7 @@ #endif #include "tt_res.h" #include "xmodem.h" +#include "kermit.h" #if 0 #define FS_BRACKET_NONE 0 @@ -745,7 +746,9 @@ switch (ProtoId) { case PROTO_KMT: - vsize = sizeof(TKmtVar); +// vsize = sizeof(TKmtVar); + KmtCreate(fv); + vsize = 0; break; case PROTO_XM: // vsize = sizeof(TXVar); @@ -780,7 +783,10 @@ switch (ProtoId) { case PROTO_KMT: +#if 0 ((PKmtVar)ProtoVar)->KmtMode = Mode; +#endif + _ProtoSetOpt(fv, KMT_MODE, Mode); break; case PROTO_XM: #if 0 Modified: trunk/teraterm/ttpfile/kermit.c =================================================================== --- trunk/teraterm/ttpfile/kermit.c 2020-12-20 12:07:51 UTC (rev 9059) +++ trunk/teraterm/ttpfile/kermit.c 2020-12-20 12:08:03 UTC (rev 9060) @@ -44,8 +44,63 @@ #include "ftlib.h" #include "win16api.h" +#include "kermit.h" + #define KERMIT_CAPAS +typedef struct { + int MAXL; + BYTE TIME,NPAD,PADC,EOL,QCTL,QBIN,CHKT,REPT,CAPAS,WINDO,MAXLX1,MAXLX2; +} KermitParam; + +#define KMT_DATAMAX 4000 +#define KMT_PKTMAX (KMT_DATAMAX + 32) +#define KMT_PKTQUE 4 + +typedef struct { + BYTE PktIn[KMT_PKTMAX], PktOut[KMT_PKTMAX]; + int PktInPtr; + int PktInLen, PktInCount; + int PktNum, PktNumOffset; + int PktReadMode; + int KmtMode, KmtState; + BOOL Quote8, RepeatFlag; + char ByteStr[6]; + BOOL NextByteFlag; + int RepeatCount; + BYTE NextSeq; + BYTE NextByte; + KermitParam KmtMy, KmtYour; + int PktOutCount, PktInLongPacketLen; + int FileAttrFlag; + BOOL FileType; + time_t FileTime; + int FileMode; + LONGLONG FileSize; +} TKmtVar; +typedef TKmtVar far *PKmtVar; + + /* Kermit states */ +#define WaitMark 0 +#define WaitLen 1 +#define WaitCheck 2 + +#define Unknown 0 +#define SendInit 1 +#define SendFile 2 +#define SendData 3 +#define SendEOF 4 +#define SendEOT 5 +#define SendFileAttr 6 + +#define ReceiveInit 6 +#define ReceiveFile 7 +#define ReceiveData 8 + +#define ServerInit 9 +#define GetInit 10 +#define Finish 11 + /* kermit parameters */ #define MaxNum 94 @@ -1114,10 +1169,10 @@ kv->KmtState = Finish; } -void KmtInit -(PFileVarProto fv, PKmtVar kv, PComVar cv, PTTSet ts) +void KmtInit(PFileVarProto fv, PComVar cv, PTTSet ts) { char uimsg[MAX_UIMSG]; + PKmtVar kv = fv->data; UILanguageFile = ts->UILanguageFile; strncpy_s(fv->DlgCaption,sizeof(fv->DlgCaption),"Tera Term: Kermit ",_TRUNCATE); @@ -1228,8 +1283,9 @@ } } -void KmtTimeOutProc(PFileVarProto fv, PKmtVar kv, PComVar cv) +void KmtTimeOutProc(PFileVarProto fv, PComVar cv) { + PKmtVar kv = fv->data; switch (kv->KmtState) { case SendInit: KmtSendPacket(fv,kv,cv); @@ -1267,7 +1323,7 @@ } } -BOOL KmtReadPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) +BOOL KmtReadPacket(PFileVarProto fv, PComVar cv) { BYTE b; int c, PktNumNew; @@ -1274,6 +1330,7 @@ BOOL GetPkt; char FNBuff[50]; int i, j, Len; + PKmtVar kv = fv->data; c = CommRead1Byte(cv,&b); @@ -1563,8 +1620,9 @@ return TRUE; } -void KmtCancel(PFileVarProto fv, PKmtVar kv, PComVar cv) +void KmtCancel(PFileVarProto fv, PComVar cv) { + PKmtVar kv = fv->data; KmtIncPacketNum(kv); strncpy_s(&(kv->PktOut[4]),sizeof(kv->PktOut)-4,"Cancel",_TRUNCATE); KmtMakePacket(fv,kv,(BYTE)(kv->PktNum-kv->PktNumOffset),(BYTE)'E', @@ -1571,3 +1629,35 @@ strlen(&(kv->PktOut[4]))); KmtSendPacket(fv,kv,cv); } + +static int SetOptV(PFileVarProto fv, int request, va_list ap) +{ + PKmtVar kv = fv->data; + switch(request) { + case KMT_MODE: { + int Mode = va_arg(ap, int); + kv->KmtMode = Mode; + return 0; + } + } + return -1; +} + +BOOL KmtCreate(PFileVarProto fv) +{ + PKmtVar kv; + kv = malloc(sizeof(TKmtVar)); + if (kv == NULL) { + return FALSE; + } + memset(kv, 0, sizeof(*kv)); + fv->data = kv; + + fv->Init = KmtInit; + fv->Parse = KmtReadPacket; + fv->TimeOutProc = KmtTimeOutProc; + fv->Cancel = KmtCancel; + fv->SetOptV = SetOptV; + + return TRUE; +} Modified: trunk/teraterm/ttpfile/kermit.h =================================================================== --- trunk/teraterm/ttpfile/kermit.h 2020-12-20 12:07:51 UTC (rev 9059) +++ trunk/teraterm/ttpfile/kermit.h 2020-12-20 12:08:03 UTC (rev 9060) @@ -35,13 +35,18 @@ extern "C" { #endif +enum { + KMT_MODE +}; + /* prototypes */ -void KmtInit(PFileVarProto fv, PKmtVar kv, PComVar cv, PTTSet ts); -void KmtTimeOutProc(PFileVarProto fv, PKmtVar kv, PComVar cv); -BOOL KmtReadPacket - (PFileVarProto fv, PKmtVar kv, PComVar cv); -void KmtCancel - (PFileVarProto fv, PKmtVar kv, PComVar cv); +BOOL KmtCreate(PFileVarProto fv); +#if 0 +void KmtInit(PFileVarProto fv, PComVar cv, PTTSet ts); +void KmtTimeOutProc(PFileVarProto fv, PComVar cv); +BOOL KmtReadPacket(PFileVarProto fv, PComVar cv); +void KmtCancel(PFileVarProto fv, PComVar cv); +#endif #ifdef __cplusplus } Modified: trunk/teraterm/ttpfile/ttfile_proto.cpp =================================================================== --- trunk/teraterm/ttpfile/ttfile_proto.cpp 2020-12-20 12:07:51 UTC (rev 9059) +++ trunk/teraterm/ttpfile/ttfile_proto.cpp 2020-12-20 12:08:03 UTC (rev 9060) @@ -57,7 +57,7 @@ { switch (Proto) { case PROTO_KMT: - KmtInit(fv,(PKmtVar)pv,cv,ts); + fv->Init(fv,cv,ts); break; case PROTO_XM: fv->Init(fv,cv,ts); @@ -84,7 +84,7 @@ Ok = FALSE; switch (Proto) { case PROTO_KMT: - Ok = KmtReadPacket(fv,(PKmtVar)pv,cv); + Ok = fv->Parse(fv,cv); break; case PROTO_XM: Ok = fv->Parse(fv, cv); @@ -123,7 +123,7 @@ { switch (Proto) { case PROTO_KMT: - KmtTimeOutProc(fv,(PKmtVar)pv,cv); + fv->TimeOutProc(fv,cv); break; case PROTO_XM: fv->TimeOutProc(fv,cv); @@ -147,7 +147,7 @@ { switch (Proto) { case PROTO_KMT: - KmtCancel(fv,(PKmtVar)pv,cv); + fv->Cancel(fv,cv); break; case PROTO_XM: fv->Cancel(fv,cv);