• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

変愚蛮怒のメインリポジトリです


Commit MetaInfo

修订版c3cb0895f7f484477e7206df820821c97fc4db1e (tree)
时间2017-09-08 22:35:45
作者Deskull <desull@user...>
CommiterDeskull

Log Message

#37449 (2.2.0.83) msg_print()の致命的なエンバグ修正。 / Fix fatal bugs of msg_print().

更改概述

差异

--- a/src/defines.h
+++ b/src/defines.h
@@ -53,7 +53,7 @@
5353 #define FAKE_VER_MAJOR 12 /*!< ゲームのバージョン番号定義(メジャー番号 + 10) */
5454 #define FAKE_VER_MINOR 2 /*!< ゲームのバージョン番号定義(マイナー番号) */
5555 #define FAKE_VER_PATCH 0 /*!< ゲームのバージョン番号定義(パッチ番号) */
56-#define FAKE_VER_EXTRA 82 /*!< ゲームのバージョン番号定義(エクストラ番号) */
56+#define FAKE_VER_EXTRA 83 /*!< ゲームのバージョン番号定義(エクストラ番号) */
5757
5858
5959 /*!
--- a/src/util.c
+++ b/src/util.c
@@ -2833,16 +2833,6 @@ void msg_print(cptr msg)
28332833
28342834 if (world_monster) return;
28352835
2836- /* Copy it */
2837- if(!cheat_turn)
2838- {
2839- strcpy(buf, msg);
2840- }
2841- else
2842- {
2843- sprintf(buf,("T:%d - %s"), turn, msg);
2844- }
2845-
28462836 /* Hack -- Reset */
28472837 if (!msg_flag) {
28482838 /* Clear the line */
@@ -2850,14 +2840,11 @@ void msg_print(cptr msg)
28502840 p = 0;
28512841 }
28522842
2853- /* Message Length */
2854- n = (buf ? strlen(buf) : 0);
2855-
2856- /* Paranoia */
2857- if (n > 1000) return;
2843+ /* Original Message Length */
2844+ n = (msg ? strlen(msg) : 0);
28582845
28592846 /* Hack -- flush when requested or needed */
2860- if (p && (!buf || ((p + n) > 72)))
2847+ if (p && (!msg || ((p + n) > 72)))
28612848 {
28622849 /* Flush */
28632850 msg_flush(p);
@@ -2872,6 +2859,22 @@ void msg_print(cptr msg)
28722859 /* No message */
28732860 if (!msg) return;
28742861
2862+ /* Paranoia */
2863+ if (n > 1000) return;
2864+
2865+ /* Copy it */
2866+ if (!cheat_turn)
2867+ {
2868+ strcpy(buf, msg);
2869+ }
2870+ else
2871+ {
2872+ sprintf(buf, ("T:%d - %s"), turn, msg);
2873+ }
2874+
2875+ /* New Message Length */
2876+ n = (buf ? strlen(buf) : 0);
2877+
28752878 /* Memorize the message */
28762879 if (character_generated) message_add(buf);
28772880