[Ttssh2-commit] [3929] YMODEM送信処理において、ハイパーターミナル仕様(標準仕様)に準拠するようにした。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 6月 20日 (日) 15:45:33 JST


Revision: 3929
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=3929
Author:   yutakapon
Date:     2010-06-20 15:45:33 +0900 (Sun, 20 Jun 2010)

Log Message:
-----------
YMODEM送信処理において、ハイパーターミナル仕様(標準仕様)に準拠するようにした。
cf.
http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=22059
http://ja.wikipedia.org/wiki/YMODEM

Modified Paths:
--------------
    trunk/teraterm/ttpfile/ymodem.c


-------------- next part --------------
Modified: trunk/teraterm/ttpfile/ymodem.c
===================================================================
--- trunk/teraterm/ttpfile/ymodem.c	2010-06-11 09:17:12 UTC (rev 3928)
+++ trunk/teraterm/ttpfile/ymodem.c	2010-06-20 06:45:33 UTC (rev 3929)
@@ -552,6 +552,7 @@
 		do {
 			if (i==0) return TRUE;
 			firstch = b;
+
 			switch (b) {
 			case ACK:
 				// 1‰ñ–Ú‚ÌEOT‘—MŒã‚ÌACKŽóM‚ŁAu1ƒtƒ@ƒCƒ‹‘—Mv‚̏I‚í‚è‚Æ‚·‚éB
@@ -574,6 +575,13 @@
 				}
 				else if (yv->PktNumSent==(BYTE)(yv->PktNum+1))  // ŽŸ‚̃uƒƒbƒN‚ð‘—‚é
 				{
+					// ƒuƒƒbƒN0iƒtƒ@ƒCƒ‹î•ñj‘—MŒã‚́AACK ‚Æ 'C' ‚ð˜A‘±‚µ‚ÄŽóM‚·‚邱‚Æ‚É
+					// ‚È‚Á‚Ä‚¢‚邽‚߁AŽŸ‚Ì'C'‚ð‘҂B(2010.6.20 yutaka)
+					if ((yv->PktNum==0) && (yv->PktNumOffset==0)) {
+						SendFlag = FALSE;
+						break;
+					}
+
 					yv->PktNum = yv->PktNumSent;
 					if (yv->PktNum==0)
 						yv->PktNumOffset = yv->PktNumOffset + 256;
@@ -582,6 +590,13 @@
 				break;
 
 			case NAK:
+				// 1‰ñ–Ú‚ÌEOT‘—MŒã‚ÌNAKŽóM‚ŁAÅŒã"EOT"‚ð‘—‚éB
+				if (yv->SendEot) {
+					yv->PktNum = yv->PktNumSent;
+					if (yv->PktNum==0)
+						yv->PktNumOffset = yv->PktNumOffset + 256;
+				}
+
 				SendFlag = TRUE;
 				break;
 
@@ -593,6 +608,13 @@
 				// 'C'‚ðŽó‚¯Žæ‚é‚ƁAƒuƒƒbƒN‚Ì‘—M‚ðŠJŽn‚·‚éB
 				if ((yv->PktNum==0) && (yv->PktNumOffset==0))
 				{
+					// ƒtƒ@ƒCƒ‹î•ñ‘—MŒãAACK -> 'C' ‚ÆŽóM‚µ‚½‚̂ŁAŽŸ‚̃uƒƒbƒN‚𑗐M‚·‚éB
+					if (yv->SendFileInfo) {
+						yv->PktNum = yv->PktNumSent;
+						if (yv->PktNum==0)
+							yv->PktNumOffset = yv->PktNumOffset + 256;
+					}
+
 					SendFlag = TRUE;
 				}
 				else if (yv->LastSendEot) {



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