チケット #36039

patch jnethack-3.6.0-0.1: win/X11/winX.c のパッチ適用漏れ

登録: 2016-02-20 21:58 最終更新: 2016-02-23 18:23

報告者: racer100 担当者: argrath
チケットの種類: バグ 状況: 完了
コンポーネント: (未割り当て) マイルストーン: 3.6.0-0.2 (完了済み)
優先度: 5 - 中 重要度: 5 - 中
解決法: 修正済み

詳細

jnethack-3.6.0-0.1 を FreeBSD 10.1-RELEASE でプレイしています。 FreeBSD ports collection に入っている ja-nethack-3.4.3 をベースにして、 同等の設定でインストールしています。

X11 版を動作させようとしているのですが、X のリソースからタイルサイズを 取得するパッチが抜けており、そのままだと Arithmetic exception になって 起動できません。

デバッガの出力を一応貼っておきます。

GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) run
Starting program: /usr/local/share/jnethack36/jnethack36 
Warning: cannot write scoreboard file record

Hit return to continue: 

Program received signal SIGFPE, Arithmetic exception.
0x000000000068be69 in init_tiles (wp=0x93de00) at ../win/X11/winmap.c:402
402             TILE_PER_COL = tile_image.width / TILE_WIDTH;
Current language:  auto; currently minimal
(gdb) list 190,192
190     #define TILE_WIDTH      appResources.tile_width
191     #define TILE_HEIGHT     appResources.tile_height
192     int     TILE_PER_COL;
(gdb) print tile_image.width
$1 = 640
(gdb) print appResources.tile_width
$2 = 0
(gdb) 
jnethack-3.4.3-0.11.diff.gz を参考に、win/X11/winX.c を修正したところ、 無事 X11 版が動作するようになりました。
  1. --- win/X11/winX.c.orig 2016-02-18 22:28:51.000000000 +0900
  2. +++ win/X11/winX.c 2016-02-18 22:29:11.000000000 +0900
  3. @@ -1031,6 +1031,12 @@
  4. nhStr("False") },
  5. { nhStr("tile_file"), nhStr("Tile_file"), XtRString, sizeof(String),
  6. XtOffset(AppResources *, tile_file), XtRString, nhStr("x11tiles") },
  7. +#ifdef X11LARGETILE
  8. + { nhStr("tile_width"), nhStr("Tile_width"), XtRInt, sizeof(int),
  9. + XtOffset(AppResources *, tile_width), XtRString, nhStr("32") },
  10. + { nhStr("tile_height"), nhStr("Tile_height"), XtRInt, sizeof(int),
  11. + XtOffset(AppResources *, tile_height), XtRString, nhStr("32") },
  12. +#endif
  13. { nhStr("icon"), nhStr("Icon"), XtRString, sizeof(String),
  14. XtOffset(AppResources *, icon), XtRString, nhStr("nh72") },
  15. { nhStr("message_lines"), nhStr("Message_lines"), XtRInt, sizeof(int),

添付ファイルリスト

添付ファイルはありません

チケットの履歴 (4 件中 3 件表示)

2016-02-20 21:58 更新者: racer100
  • 新しいチケット "[patch] jnethack-3.6.0-0.1: win/X11/winX.c のパッチ適用漏れ" が作成されました
2016-02-21 00:37 更新者: argrath
  • 担当者(未割り当て) から argrath に更新されました
コメント

ありがとうございます。設定によっては Arithmetic exceptionになるのは気づいていたのですが条件が分かっていませんでした。助かりました。

2016-02-21 01:07 更新者: argrath
  • 解決法なし から 修正済み に更新されました
コメント

5f2749e で修正しました。

2016-02-23 18:23 更新者: argrath
  • マイルストーン(未割り当て) から 3.6.0-0.2 (完了済み) に更新されました
  • チケット完了時刻2016-02-23 18:23 に更新されました
  • 状況オープン から 完了 に更新されました

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする