Ticket #42529

「ゲームのオプション一覧」を表示させると画面が乱れる

Open Date: 2021-06-15 06:35 Last Update: 2021-06-16 20:36

Reporter:
Owner:
Type:
Status:
Open [Owner assigned]
Component:
(None)
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

「ゲームのオプション一覧」(?g)を表示させると画面が乱れ、ゲームを終了するまで回復しません。

Ticket History (2/2 Histories)

2021-06-15 06:35 Updated by: argrath
  • New Ticket "「ゲームのオプション一覧」を表示させると画面が乱れる" created
2021-06-16 20:36 Updated by: argrath
  • Owner Update from (None) to argrath
  • Resolution Update from None to Fixed
  • Milestone Update from (None) to 3.6.6-0.3
Comment

0345997で修正しました。

メモ:

問題の中心はwintty.c:tty_putstr()で、メッセージが80バイト以上だと 空白で行を分割しようとする。 日本語の場合空白が入らないことがあるので行が分割できず表示が乱れる。

通常のヘルプ類は事前に80バイトで収まるように手動で改行を入れているので 問題ないが、このヘルプは可変長のフルパスファイル名が含まれるため問題が 顕在化する。

行分割処理を書き直すのが筋だが、とりあえずファイル名の前後に空白を 入れることで回避策とする。

ちなみにこの処理だとフルパスファイル名が80バイトを超えたときに 英語版でも問題が発生しそうに見えるが、この場合ファイル名の方が 短縮されるため問題は発生しない。

なおここでも「バイト数=表示上の文字列長」という仮定が使われているため、 ソースをUTF-8化するときには書き直しが必要。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login