[ttssh2-commit] [10605] sendmemを使ったファイル送信ですべてのデータを送れない場合があったので修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 2月 22日 (水) 00:12:46 JST


Revision: 10605
          https://osdn.net/projects/ttssh2/scm/svn/commits/10605
Author:   zmatsuo
Date:     2023-02-22 00:12:45 +0900 (Wed, 22 Feb 2023)
Log Message:
-----------
sendmemを使ったファイル送信ですべてのデータを送れない場合があったので修正

- sendmemを使ったファイル送信ですべてのデータを送れない場合があった
  - 送信バッファの空きサイズ取得が誤っていた
    - 送信バッファサイズ(16*1024byte)より大きいデータを送る場合発生
  - テキスト送信時、空きサイズが奇数になったとき送信データが文字化けする

Modified Paths:
--------------
    trunk/teraterm/teraterm/sendmem.cpp

-------------- next part --------------
Modified: trunk/teraterm/teraterm/sendmem.cpp
===================================================================
--- trunk/teraterm/teraterm/sendmem.cpp	2023-02-21 14:43:02 UTC (rev 10604)
+++ trunk/teraterm/teraterm/sendmem.cpp	2023-02-21 15:12:45 UTC (rev 10605)
@@ -220,6 +220,11 @@
 #endif
 }
 
+/**
+ *	\x91\x97\x90M\x83o\x83b\x83t\x83@\x82̏\xEE\x95\xF1\x8E擾
+ *	@param[out]		use		\x8Eg\x97pbyte
+ *	@param[out]		free	\x8B\xF3\x82\xABbyte
+ */
 static void GetOutBuffInfo(const TComVar *cv_, size_t *use, size_t *free)
 {
 	if (use != NULL) {
@@ -226,10 +231,15 @@
 		*use = cv_->OutBuffCount;
 	}
 	if (free != NULL) {
-		*free = OutBuffSize - cv_->InBuffCount;
+		*free = OutBuffSize - cv_->OutBuffCount;
 	}
 }
 
+/**
+ *	\x8E\xF3\x90M\x83o\x83b\x83t\x83@\x82̏\xEE\x95\xF1\x8E擾
+ *	@param[out]		use		\x8Eg\x97pbyte
+ *	@param[out]		free	\x8B\xF3\x82\xABbyte
+ */
 static void GetInBuffInfo(const TComVar *cv_, size_t *use, size_t *free)
 {
 	if (use != NULL) {
@@ -396,6 +406,10 @@
 			need_delay = TRUE;
 			send_len = p->send_size_max;
 		}
+		if (p->type == SendMemTypeText) {
+			// \x91\x97\x90M\x83f\x81[\x83^\x92\xB7\x82\xF0\x8B\xF4\x90\x94(wchar_t\x96\x88)\x82ɂ\xB7\x82\xE9
+			send_len = send_len & (~1);
+		}
 	}
 	else {
 		// \x91S\x97͑\x97\x90M
@@ -403,6 +417,10 @@
 		if (buff_len < send_len) {
 			send_len = buff_len;
 		}
+		if (p->type == SendMemTypeText) {
+			// \x91\x97\x90M\x83f\x81[\x83^\x92\xB7\x82\xF0\x8B\xF4\x90\x94(wchar_t\x96\x88)\x82ɂ\xB7\x82\xE9
+			send_len = send_len & (~1);
+		}
 	}
 
 	// \x91\x97\x90M\x82\xB7\x82\xE9


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