X11版で、使用するフォントによってウィンドウの幅が横に伸びる
すみません。スクリーンショットのリンクを貼っていませんでした。 http://www1.axfc.net/uploader/Img/so/104929.png
担当のdeskullです、モナーフォントによるフォントのズレについては自分の環境(Ubuntu)でも確認しましたが、 ズレ方について頂いたスクリーンショットとは別の形をしており、 頂いたパッチを単純に当てただけではまだ問題解決できないことが明らかになりました。 X11固有の問題、しかも本来使用想定外かも知れないプロポーショナルフォントの使用については 対応するとしても、別件を解決し、エンバグの阻止のためにある程度ソースを読み直してからにしようと思います。 ご了承ください。
チケット報告者です。 担当者 deskull 様のコメントを拝見いたしました。ご返信ありがとうございます。
TrueType、プロポーショナルフォントの対応は、本来使用想定外ということは私自身も同じ認識を持っております。 deskull 様の環境では、当方の環境 (Plamo Linux 4.2 をカスタム) と違った結果が現れたということで、 申し訳ありませんが、複数の環境を用意できないために私の側でこれ以上の問題の原因追跡が非常に困難となっています。 解決すべきか否かを含めた優先度決定と解決策につきましては、duskell 様を含めた開発者様の方々に一任したいと思います。
ご対応に重ねて感謝申し上げます。
habuさんが解決してくれました。内容的に重複していたのは言わずもがななのでその旨設定の上改めて完了とします。
突然の投稿、失礼します。
状況
リビジョン3083、X11版でIPAモナーフォントを使おうと思い、環境変数を
として変愚蛮怒を起動したところ、ウィンドウの幅が約2倍に伸びてしまいました。 フォント名 (XLFD) は、パスの通ったディレクトリに TrueType フォントを置き、 mkfontdir コマンドを実行した結果をもとにしています。
スクリーンショット
原因
main-x11.c の Infofnt_prepare()、1304行目以降で文字の最大幅が求められています。 その方法は以下の通りです。
察するに、この処理は次の2つを前提としていると思います。
ところがIPAモナーフォントには、1バイトで全角文字並みの幅を持つ文字があります。
一方で変愚蛮怒のウィンドウの幅は次の式で求められます。 main-x11.c の term_data_init()、 3528行目より、
最大幅が半角文字並みであれば問題がないのですが、 全角文字並みであれば、当然のことながら幅は半角文字と比べて2倍程度になります。 これが、ウィンドウの幅を広げる原因です。
修正案
Infofnt_prepare() 内の、フォントの最大幅を求める方法を変えました。
こうすることによって、ウィンドウの幅が予期せず広くなることが防がれました。以下にパッチを載せます。