[Ttssh2-commit] [8997] Kermit の API KermitStart() を使用しないようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 11月 2日 (月) 00:35:40 JST


Revision: 8997
          https://osdn.net/projects/ttssh2/scm/svn/commits/8997
Author:   zmatsuo
Date:     2020-11-02 00:35:39 +0900 (Mon, 02 Nov 2020)
Log Message:
-----------
Kermit の API KermitStart() を使用しないようにした

- KermitStartSend(), KermitGet(), KermitStartRecive(), KermitFinish() のみ使用

Modified Paths:
--------------
    branches/proto_unicode/teraterm/teraterm/filesys.h
    branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp
    branches/proto_unicode/teraterm/teraterm/filesys_proto.h
    branches/proto_unicode/teraterm/teraterm/ttdde.c
    branches/proto_unicode/teraterm/teraterm/vtwin.cpp
    branches/proto_unicode/teraterm/ttpfile/kermit.c

-------------- next part --------------
Modified: branches/proto_unicode/teraterm/teraterm/filesys.h
===================================================================
--- branches/proto_unicode/teraterm/teraterm/filesys.h	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/teraterm/filesys.h	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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: branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp
===================================================================
--- branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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: branches/proto_unicode/teraterm/teraterm/filesys_proto.h
===================================================================
--- branches/proto_unicode/teraterm/teraterm/filesys_proto.h	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/teraterm/filesys_proto.h	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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: branches/proto_unicode/teraterm/teraterm/ttdde.c
===================================================================
--- branches/proto_unicode/teraterm/teraterm/ttdde.c	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/teraterm/ttdde.c	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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: branches/proto_unicode/teraterm/teraterm/vtwin.cpp
===================================================================
--- branches/proto_unicode/teraterm/teraterm/vtwin.cpp	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/teraterm/vtwin.cpp	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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: branches/proto_unicode/teraterm/ttpfile/kermit.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/kermit.c	2020-11-01 15:35:26 UTC (rev 8996)
+++ branches/proto_unicode/teraterm/ttpfile/kermit.c	2020-11-01 15:35:39 UTC (rev 8997)
@@ -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);


Ttssh2-commit メーリングリストの案内
Back to archive index