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ñÚÌEOTMãÌACKóMÅAu1t@CMvÌIíèÆ·éB @@ -574,6 +575,13 @@ } else if (yv->PktNumSent==(BYTE)(yv->PktNum+1)) // ÌubNðé { + // ubN0it@CîñjMãÍ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ñÚÌEOTMãÌ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'ðó¯æéÆAubNÌMðJn·éB if ((yv->PktNum==0) && (yv->PktNumOffset==0)) { + // t@CîñMãAACK -> 'C' ÆóMµ½ÌÅAÌubNðM·éB + if (yv->SendFileInfo) { + yv->PktNum = yv->PktNumSent; + if (yv->PktNum==0) + yv->PktNumOffset = yv->PktNumOffset + 256; + } + SendFlag = TRUE; } else if (yv->LastSendEot) {