Revision: 8053 https://osdn.net/projects/ttssh2/scm/svn/commits/8053 Author: yutakapon Date: 2019-08-31 20:07:20 +0900 (Sat, 31 Aug 2019) Log Message: ----------- ・non-fatalおよびfatal時のエラーメッセージを登録する際、同一メッセージがすでに 登録されていた場合は追加しないようにした。ユーザに同じメッセージを何回見せても 意味がない(むしろ心証がよくない)。 ・メモリ確保できない場合の処理を追加した。 Modified Paths: -------------- branches/ttssh_improved/ttssh2/ttxssh/ttxssh.c -------------- next part -------------- Modified: branches/ttssh_improved/ttssh2/ttxssh/ttxssh.c =================================================================== --- branches/ttssh_improved/ttssh2/ttxssh/ttxssh.c 2019-08-31 09:01:49 UTC (rev 8052) +++ branches/ttssh_improved/ttssh2/ttxssh/ttxssh.c 2019-08-31 11:07:20 UTC (rev 8053) @@ -889,12 +889,24 @@ pvar->socket, MAKELPARAM(FD_CLOSE, 0)); } +// non-fatal\x82\xA8\x82\xE6\x82\xD1fatal\x8E\x9E\x82̃G\x83\x89\x81[\x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8Ao\x82\xA6\x82Ă\xA8\x82\xAD\x81B +// \x88\xEA\x93x\x81A\x8Ao\x82\xA6\x82\xBD\x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x82\xA0\x82\xEA\x82A\x89\xFC\x8Ds\x82\xF0\x8B\xB2\x82\xF1\x82Œlj\xC1\x82\xB5\x82Ă\xA2\x82\xAD\x81B static void add_err_msg(PTInstVar pvar, char *msg) { if (pvar->err_msg != NULL) { - int buf_len = strlen(pvar->err_msg) + 3 + strlen(msg); - char *buf = (char *) malloc(buf_len); + int buf_len; + char *buf; + // \x82\xB7\x82łɓ\xAF\x82\xB6\x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x93o\x98^\x8Dς݂̏ꍇ\x82͒lj\xC1\x82\xB5\x82Ȃ\xA2\x81B + if (strstr(pvar->err_msg, msg)) + return; + + buf_len = strlen(pvar->err_msg) + 3 + strlen(msg); + buf = malloc(buf_len); + // \x83\x81\x83\x82\x83\x8A\x82\xAA\x8Am\x95ۂł\xAB\x82Ȃ\xA2\x8Fꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B + if (buf == NULL) + return; + strncpy_s(buf, buf_len, pvar->err_msg, _TRUNCATE); strncat_s(buf, buf_len, "\n\n", _TRUNCATE); strncat_s(buf, buf_len, msg, _TRUNCATE); @@ -901,6 +913,7 @@ free(pvar->err_msg); pvar->err_msg = buf; } else { + // \x83\x81\x83\x82\x83\x8A\x82\xAA\x8Am\x95ۂł\xAB\x82Ȃ\xA2\x8Fꍇ\x82́A_strdup()\x82\xCDNULL\x82\xF0\x95Ԃ\xB7\x81B pvar->err_msg = _strdup(msg); } }