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