Revision: 9082 https://osdn.net/projects/ttssh2/scm/svn/commits/9082 Author: zmatsuo Date: 2020-12-20 21:11:59 +0900 (Sun, 20 Dec 2020) Log Message: ----------- Kermit の API KermitStart() を使用しないようにした - KermitStartSend(), KermitGet(), KermitStartRecive(), KermitFinish() のみ使用 Modified Paths: -------------- trunk/teraterm/teraterm/filesys.h trunk/teraterm/teraterm/filesys_proto.cpp trunk/teraterm/teraterm/filesys_proto.h trunk/teraterm/teraterm/ttdde.c trunk/teraterm/teraterm/vtwin.cpp trunk/teraterm/ttpfile/kermit.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/filesys.h =================================================================== --- trunk/teraterm/teraterm/filesys.h 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/teraterm/filesys.h 2020-12-20 12:11:59 UTC (rev 9082) @@ -46,11 +46,10 @@ int ProtoDlgParse(void); void ProtoDlgTimeOut(void); void ProtoDlgCancel(void); -void KermitStart(int mode); BOOL KermitStartSend(const char *filename); BOOL KermitGet(const char *filename); -BOOL KermitStartRecive(void); -BOOL KermitFinish(void); +BOOL KermitStartRecive(BOOL macro); +BOOL KermitFinish(BOOL macro); BOOL XMODEMStartReceive(const char *fiename, WORD ParamBinaryFlag, WORD ParamXmodemOpt); BOOL XMODEMStartSend(const char *fiename, WORD ParamXmodemOpt); void YMODEMStart(int mode); Modified: trunk/teraterm/teraterm/filesys_proto.cpp =================================================================== --- trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:11:59 UTC (rev 9082) @@ -136,8 +136,8 @@ // \x8E\xF3\x90M\x83t\x83H\x83\x8B\x83_\x82\xF0 fv->FullName \x82ɐݒ肵\x82Ă\xA8\x82\xAD // fv->FullName[fv->DirLen] \x82\xA9\x82\xE7\x83t\x83@\x83C\x83\x8B\x96\xBC\x82\xF0\x90ݒ肷\x82\xE9\x82ƃt\x83\x8B\x83p\x83X\x82ɂȂ\xE9 strncpy_s(fv->FullName, sizeof(fv->FullName), FileDirExpanded, _TRUNCATE); + fv->DirLen = strlen(fv->FullName); - fv->DirLen = strlen(fv->FullName); fv->FileOpen = FALSE; fv->OverWrite = ((ts.FTFlag & FT_RENAME) == 0); fv->HMainWin = HVTWin; @@ -930,76 +930,11 @@ if (c=='\\'||c=='/') fv->DirLen++; } -void KermitStart(int mode) +static void KermitStart(int mode) { - WORD w; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - if (! ProtoStart()) return; - TFileVarProto *fv = FileVar; - - switch (mode) { - case IdKmtSend: - FileVar->OpId = OpKmtSend; - - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTSEND", uimsg, sizeof(uimsg), TitKmtSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); - - if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0) - { - if (!_GetMultiFname(fv->HMainWin, GMF_KERMIT, fv->DlgCaption, &w) || - (FileVar->NumFname==0)) - { - ProtoEnd(); - return; - } - } - else - _SetFileVar(FileVar); - break; - case IdKmtReceive: - FileVar->OpId = OpKmtRcv; - - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTRCV", uimsg, sizeof(uimsg), TitKmtRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); - - break; - case IdKmtGet: - FileVar->OpId = OpKmtSend; - - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTGET", uimsg, sizeof(uimsg), TitKmtGet, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); - - if (strlen(&(FileVar->FullName[FileVar->DirLen]))==0) - { - if (! _GetGetFname(FileVar->HMainWin,FileVar, &ts) || - (strlen(FileVar->FullName)==0)) - { - ProtoEnd(); - return; - } - } - else - _SetFileVar(FileVar); - break; - case IdKmtFinish: - FileVar->OpId = OpKmtFin; - - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTFIN", uimsg, sizeof(uimsg), TitKmtFin, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); - - break; - default: - ProtoEnd(); - return; - } TalkStatus = IdTalkQuiet; /* disable transmit delay (serial port) */ @@ -1009,6 +944,11 @@ ProtoEnd(); } +/** + * Kermit \x91\x97\x90M + * + * @param[in] filename \x8E\xF3\x90M\x83t\x83@\x83C\x83\x8B\x96\xBC(NULL\x82̂Ƃ\xAB\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82őI\x91\xF0\x82\xB7\x82\xE9) + */ BOOL KermitStartSend(const char *filename) { if (FileVar !=NULL) @@ -1015,16 +955,38 @@ return FALSE; if (!NewFileVar_(&FileVar)) return FALSE; + TFileVarProto *fv = FileVar; - FileVar->DirLen = 0; - strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE); - FileVar->NumFname = 1; - FileVar->NoMsg = TRUE; + FileVar->OpId = OpKmtSend; + + char uimsg[MAX_UIMSG]; + const char *UILanguageFile = ts.UILanguageFile; + strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); + get_lang_msg("FILEDLG_TRANS_TITLE_KMTSEND", uimsg, sizeof(uimsg), TitKmtSend, UILanguageFile); + strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + + if (filename == NULL) { + WORD w = 0; + char **filenames = _GetMultiFname(fv->HMainWin, GMF_KERMIT, fv->DlgCaption, &w); + if (filenames == NULL) { + FreeFileVar_(&FileVar); + return FALSE; + } + fv->FileNames = filenames; + } + else { + fv->FileNames = MakeStrArrayFromStr(filename); + FileVar->NoMsg = TRUE; + } +// GetNextFname(fv); KermitStart(IdKmtSend); return TRUE; } +/** + * Kermit \x8E\xF3\x90M + */ BOOL KermitGet(const char *filename) { if (FileVar !=NULL) @@ -1032,16 +994,37 @@ if (!NewFileVar_(&FileVar)) return FALSE; - FileVar->DirLen = 0; - strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE); - FileVar->NumFname = 1; - FileVar->NoMsg = TRUE; + TFileVarProto *fv = FileVar; + FileVar->OpId = OpKmtSend; + + char uimsg[MAX_UIMSG]; + const char *UILanguageFile = ts.UILanguageFile; + strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); + get_lang_msg("FILEDLG_TRANS_TITLE_KMTGET", uimsg, sizeof(uimsg), TitKmtGet, UILanguageFile); + strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + + if (filename == NULL) { + if (! _GetGetFname(FileVar->HMainWin,FileVar, &ts) || (strlen(FileVar->FullName)==0)) { + FreeFileVar_(&FileVar); + return FALSE; + } + } + else { + FileVar->DirLen = 0; + strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE); + FileVar->NumFname = 1; + FileVar->NoMsg = TRUE; + _SetFileVar(FileVar); + } KermitStart(IdKmtGet); return TRUE; } -BOOL KermitStartRecive(void) +/** + * Kermit \x8E\xF3\x90M + */ +BOOL KermitStartRecive(BOOL macro) { if (FileVar !=NULL) return FALSE; @@ -1048,13 +1031,28 @@ if (!NewFileVar_(&FileVar)) return FALSE; - FileVar->NoMsg = TRUE; + TFileVarProto *fv = FileVar; + FileVar->OpId = OpKmtRcv; + + char uimsg[MAX_UIMSG]; + const char *UILanguageFile = ts.UILanguageFile; + strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); + get_lang_msg("FILEDLG_TRANS_TITLE_KMTRCV", uimsg, sizeof(uimsg), TitKmtRcv, UILanguageFile); + strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + + if (macro) { + // \x83}\x83N\x83\x8D\x82\xA9\x82\xE7 + FileVar->NoMsg = TRUE; + } KermitStart(IdKmtReceive); return TRUE; } -BOOL KermitFinish(void) +/** + * Kermit finish + */ +BOOL KermitFinish(BOOL macro) { if (FileVar !=NULL) return FALSE; @@ -1061,7 +1059,19 @@ if (!NewFileVar_(&FileVar)) return FALSE; - FileVar->NoMsg = TRUE; + TFileVarProto *fv = FileVar; + + FileVar->OpId = OpKmtFin; + + char uimsg[MAX_UIMSG]; + const char *UILanguageFile = ts.UILanguageFile; + strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); + get_lang_msg("FILEDLG_TRANS_TITLE_KMTFIN", uimsg, sizeof(uimsg), TitKmtFin, UILanguageFile); + strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + + if (macro) { + FileVar->NoMsg = TRUE; + } KermitStart(IdKmtFinish); return TRUE; Modified: trunk/teraterm/teraterm/filesys_proto.h =================================================================== --- trunk/teraterm/teraterm/filesys_proto.h 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/teraterm/filesys_proto.h 2020-12-20 12:11:59 UTC (rev 9082) @@ -34,13 +34,16 @@ WORD OpId; char DlgCaption[40]; - char FullName[MAX_PATH]; + // \x91\x97\x8E\xF3\x90M\x8E\x9E\x83\x8F\x81[\x83N + char FullName[MAX_PATH]; // read/write\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x96\xBC(\x8Ae\x83v\x83\x8D\x83g\x83R\x83\x8B\x93\xE0\x82ŏ\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xB7\x82邱\x82Ƃ\xA0\x82\xE8) int DirLen; + // \x95\xA1\x90\x94\x83t\x83@\x83C\x83\x8B\x91I\x91\xF0\x82ł\xAB\x82\xE9\x83v\x83\x8D\x83g\x83R\x83\x8B\x82Ŏg\x97p + // \x83t\x83\x8B\x83p\x83X\x82̃t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1(\x88\xEA\x94ԍŌ\xE3\x82\xCDNULL) char **FileNames; + int FNCount; // \x91\x97\x90M\x92\x86\x83t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1index(0...) + int NumFname; // \x83t\x83@\x83C\x83\x8B\x90\x94(\x8Eg\x97p\x82\xB5\x82Ă\xA2\x82Ȃ\xA2?) - int NumFname; - int FNCount; // HANDLE FnStrMemHandle; // PCHAR FnStrMem; // int FnPtr; Modified: trunk/teraterm/teraterm/ttdde.c =================================================================== --- trunk/teraterm/teraterm/ttdde.c 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/teraterm/ttdde.c 2020-12-20 12:11:59 UTC (rev 9082) @@ -507,7 +507,7 @@ } break; case CmdKmtFinish: - if (KermitFinish()) { + if (KermitFinish(TRUE)) { DdeCmnd = TRUE; } else { @@ -515,7 +515,7 @@ } break; case CmdKmtRecv: - if (KermitStartRecive()) { + if (KermitStartRecive(TRUE)) { DdeCmnd = TRUE; } else Modified: trunk/teraterm/teraterm/vtwin.cpp =================================================================== --- trunk/teraterm/teraterm/vtwin.cpp 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/teraterm/vtwin.cpp 2020-12-20 12:11:59 UTC (rev 9082) @@ -4311,24 +4311,24 @@ void CVTWindow::OnFileKermitRcv() { - KermitStart(IdKmtReceive); + KermitStartRecive(FALSE); } void CVTWindow::OnFileKermitGet() { HelpId = HlpFileKmtGet; - KermitStart(IdKmtGet); + KermitGet(NULL); } void CVTWindow::OnFileKermitSend() { HelpId = HlpFileKmtSend; - KermitStart(IdKmtSend); + KermitStartSend(NULL); } void CVTWindow::OnFileKermitFinish() { - KermitStart(IdKmtFinish); + KermitFinish(FALSE); } void CVTWindow::OnFileXRcv() Modified: trunk/teraterm/ttpfile/kermit.c =================================================================== --- trunk/teraterm/ttpfile/kermit.c 2020-12-20 12:11:50 UTC (rev 9081) +++ trunk/teraterm/ttpfile/kermit.c 2020-12-20 12:11:59 UTC (rev 9082) @@ -133,7 +133,7 @@ static const char *UILanguageFile; -BYTE KmtNum(BYTE b); +static BYTE KmtNum(BYTE b); static void KmtOutputCommonLog(PFileVarProto fv, PKmtVar kv, BYTE *buf, int len) @@ -276,17 +276,17 @@ } } -BYTE KmtNum(BYTE b) +static BYTE KmtNum(BYTE b) { return (b - 32); } -BYTE KmtChar(BYTE b) +static BYTE KmtChar(BYTE b) { return (b+32); } -void KmtCalcCheck(WORD Sum, BYTE CHKT, PCHAR Check) +static void KmtCalcCheck(WORD Sum, BYTE CHKT, PCHAR Check) { switch (CHKT) { case 1: @@ -315,7 +315,7 @@ return (check); } -void KmtSendPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) { int C; @@ -349,7 +349,7 @@ FTSetTimeOut(fv,kv->KmtYour.TIME); } -void KmtMakePacket(PFileVarProto fv, PKmtVar kv, BYTE SeqNum, BYTE PktType, int DataLen) +static void KmtMakePacket(PFileVarProto fv, PKmtVar kv, BYTE SeqNum, BYTE PktType, int DataLen) { int i, nlen, headnum; WORD Sum; @@ -392,7 +392,7 @@ } -void KmtSendInitPkt(PFileVarProto fv, PKmtVar kv, PComVar cv, BYTE PktType) +static void KmtSendInitPkt(PFileVarProto fv, PKmtVar kv, PComVar cv, BYTE PktType) { int NParam; @@ -435,13 +435,13 @@ } } -void KmtSendNack(PFileVarProto fv, PKmtVar kv, PComVar cv, BYTE SeqChar) +static void KmtSendNack(PFileVarProto fv, PKmtVar kv, PComVar cv, BYTE SeqChar) { KmtMakePacket(fv,kv,KmtNum(SeqChar),'N',0); KmtSendPacket(fv,kv,cv); } -int KmtCalcPktNum(PKmtVar kv, BYTE b) +static int KmtCalcPktNum(PKmtVar kv, BYTE b) { int n; @@ -451,7 +451,7 @@ return n; } -BOOL KmtCheckPacket(PKmtVar kv) +static BOOL KmtCheckPacket(PKmtVar kv) { int i, len; WORD Sum; @@ -484,13 +484,13 @@ return TRUE; } -BOOL KmtCheckQuote(BYTE b) +static BOOL KmtCheckQuote(BYTE b) { return (((b>0x20) && (b<0x3f)) || ((b>0x5F) && (b<0x7f))); } -void KmtParseInit(PKmtVar kv, BOOL AckFlag) +static void KmtParseInit(PKmtVar kv, BOOL AckFlag) { int i, NParam, off, cap, maxlen; BYTE b, n; @@ -639,7 +639,7 @@ } } -void KmtSendAck(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendAck(PFileVarProto fv, PKmtVar kv, PComVar cv) { if (kv->PktIn[3]=='S') /* Send-Init packet */ { @@ -652,7 +652,7 @@ } } -void KmtDecode(PFileVarProto fv, PKmtVar kv, PCHAR Buff, int *BuffLen) +static void KmtDecode(PFileVarProto fv, PKmtVar kv, PCHAR Buff, int *BuffLen) { int i, j, DataLen, BuffPtr, off; BYTE b, b2; @@ -729,13 +729,11 @@ static void KmtRecvFileAttr(PFileVarProto fv, PKmtVar kv, PCHAR Buff, int *BuffLen) { - int DataLen, BuffPtr, off, c, n, j; + int DataLen, off, c, n, j; BYTE *p, *q; char str[256]; struct tm tm; - BuffPtr = 0; - if (kv->PktInLen == 0) { /* Long Packet */ DataLen = kv->PktInLongPacketLen - kv->KmtMy.CHKT; off = 6; @@ -869,7 +867,7 @@ } -BOOL KmtEncode(PFileVarProto fv, PKmtVar kv) +static BOOL KmtEncode(PFileVarProto fv, PKmtVar kv) { BYTE b, b2, b7; int Len; @@ -953,7 +951,7 @@ return TRUE; } -void KmtIncPacketNum(PKmtVar kv) +static void KmtIncPacketNum(PKmtVar kv) { kv->PktNum++; if (kv->PktNum >= kv->PktNumOffset+64) @@ -960,7 +958,7 @@ kv->PktNumOffset = kv->PktNumOffset + 64; } -void KmtSendEOFPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendEOFPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) { /* close file */ if (fv->FileOpen) @@ -975,7 +973,7 @@ kv->KmtState = SendEOF; } -void KmtSendNextData(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendNextData(PFileVarProto fv, PKmtVar kv, PComVar cv) { int DataLen, DataLenNew, maxlen; BOOL NextFlag; @@ -1032,7 +1030,7 @@ } } -void KmtSendEOTPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendEOTPacket(PFileVarProto fv, PKmtVar kv, PComVar cv) { KmtIncPacketNum(kv); KmtMakePacket(fv,kv,(BYTE)(kv->PktNum-kv->PktNumOffset),(BYTE)'B',0); @@ -1041,11 +1039,11 @@ kv->KmtState = SendEOT; } -BOOL KmtSendNextFile(PFileVarProto fv, PKmtVar kv, PComVar cv) +static BOOL KmtSendNextFile(PFileVarProto fv, PKmtVar kv, PComVar cv) { - char uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG]; struct _stati64 st; BOOL r; + int FnPos; if (! GetNextFname(fv)) { @@ -1070,6 +1068,7 @@ { if (! fv->NoMsg) { + char uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG]; get_lang_msg("MSG_TT_ERROR", uimsg2, sizeof(uimsg2), "Tera Term: Error", UILanguageFile); get_lang_msg("MSG_CANTOPEN_FILE_ERROR", uimsg, sizeof(uimsg), "Cannot open file", UILanguageFile); MessageBox(fv->HWin,uimsg,uimsg,MB_ICONEXCLAMATION); @@ -1083,7 +1082,7 @@ fv->ProgStat = 0; fv->StartTime = GetTickCount(); - SetDlgItemText(fv->HWin, IDC_PROTOFNAME, &(fv->FullName[fv->DirLen])); + fv->SetDlgProtoFileName(fv, fv->FullName); SetDlgNum(fv->HWin, IDC_PROTOBYTECOUNT, fv->ByteCount); SetDlgPercent(fv->HWin, IDC_PROTOPERCENT, IDC_PROTOPROGRESS, fv->ByteCount, fv->FileSize, &fv->ProgStat); @@ -1090,10 +1089,11 @@ SetDlgTime(fv->HWin, IDC_PROTOELAPSEDTIME, fv->StartTime, fv->ByteCount); KmtIncPacketNum(kv); - strncpy_s(&(kv->PktOut[4]),sizeof(kv->PktOut)-4,&(fv->FullName[fv->DirLen]),_TRUNCATE); // put FName + GetFileNamePos(fv->FullName, NULL, &FnPos); + strncpy_s(&(kv->PktOut[4]),sizeof(kv->PktOut)-4,&(fv->FullName[FnPos]),_TRUNCATE); // put FName FTConvFName(&(kv->PktOut[4])); // replace ' ' by '_' in FName KmtMakePacket(fv,kv,(BYTE)(kv->PktNum-kv->PktNumOffset),(BYTE)'F', - strlen(&(fv->FullName[fv->DirLen]))); + strlen(&(fv->FullName[FnPos]))); KmtSendPacket(fv,kv,cv); kv->RepeatCount = 0; @@ -1102,7 +1102,7 @@ return TRUE; } -BOOL KmtSendNextFileAttr(PFileVarProto fv, PKmtVar kv, PComVar cv) +static BOOL KmtSendNextFileAttr(PFileVarProto fv, PKmtVar kv, PComVar cv) { char buf[512], s[128]; char t[64]; @@ -1143,24 +1143,26 @@ return TRUE; } -void KmtSendReceiveInit(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendReceiveInit(PFileVarProto fv, PKmtVar kv, PComVar cv) { + int FnPos; kv->PktNum = 0; kv->PktNumOffset = 0; - if ((signed int)strlen(&(fv->FullName[fv->DirLen])) >= + GetFileNamePos(fv->FullName, NULL, &FnPos); + if ((signed int)strlen(&(fv->FullName[FnPos])) >= kv->KmtYour.MAXL - kv->KmtMy.CHKT - 4) - fv->FullName[fv->DirLen+kv->KmtYour.MAXL-kv->KmtMy.CHKT-4] = 0; + fv->FullName[FnPos +kv->KmtYour.MAXL-kv->KmtMy.CHKT-4] = 0; - strncpy_s(&(kv->PktOut[4]),sizeof(kv->PktOut)-4,&(fv->FullName[fv->DirLen]),_TRUNCATE); + strncpy_s(&(kv->PktOut[4]),sizeof(kv->PktOut)-4,&(fv->FullName[FnPos]),_TRUNCATE); KmtMakePacket(fv,kv,(BYTE)(kv->PktNum-kv->PktNumOffset),(BYTE)'R', - strlen(&(fv->FullName[fv->DirLen]))); + strlen(&(fv->FullName[FnPos]))); KmtSendPacket(fv,kv,cv); kv->KmtState = GetInit; } -void KmtSendFinish(PFileVarProto fv, PKmtVar kv, PComVar cv) +static void KmtSendFinish(PFileVarProto fv, PKmtVar kv, PComVar cv) { kv->PktNum = 0; kv->PktNumOffset = 0; @@ -1176,7 +1178,6 @@ { PKmtVar kv = fv->data; - SetWindowText(fv->HWin,fv->DlgCaption); SetDlgItemText(fv->HWin, IDC_PROTOPROT, "Kermit"); if (kv->KmtMode == IdKmtSend) { @@ -1265,7 +1266,7 @@ return TRUE; } -void KmtTimeOutProc(PFileVarProto fv, PComVar cv) +static void KmtTimeOutProc(PFileVarProto fv, PComVar cv) { PKmtVar kv = fv->data; switch (kv->KmtState) { @@ -1305,13 +1306,13 @@ } } -BOOL KmtReadPacket(PFileVarProto fv, PComVar cv) +static BOOL KmtReadPacket(PFileVarProto fv, PComVar cv) { BYTE b; int c, PktNumNew; BOOL GetPkt; char FNBuff[50]; - int i, j, Len; + int Len; PKmtVar kv = fv->data; c = CommRead1Byte(cv,&b); @@ -1425,13 +1426,15 @@ if ((kv->KmtState==ReceiveFile) || (kv->KmtState==GetInit)) { + int FnPos; kv->KmtMode = IdKmtReceive; Len = sizeof(FNBuff); KmtDecode(fv,kv,FNBuff,&Len); FNBuff[Len] = 0; - GetFileNamePos(FNBuff,&i,&j); - strncpy_s(&(fv->FullName[fv->DirLen]),sizeof(fv->FullName) - fv->DirLen,&FNBuff[j],_TRUNCATE); + GetFileNamePos(FNBuff,NULL,&FnPos); + strncpy_s(fv->FullName, _countof(fv->FullName), fv->RecievePath, _TRUNCATE); + strncat_s(fv->FullName, _countof(fv->FullName), &FNBuff[FnPos], _TRUNCATE); /* file open */ if (! FTCreateFile(fv)) return FALSE; kv->KmtState = ReceiveData; @@ -1602,7 +1605,7 @@ return TRUE; } -void KmtCancel(PFileVarProto fv, PComVar cv) +static void KmtCancel(PFileVarProto fv, PComVar cv) { PKmtVar kv = fv->data; KmtIncPacketNum(kv);