アカウント名:
パスワード:
| default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);| if (default_face| && lface_same_font_attributes_p (default_face->lface, attrs))| {| face->font = default_face->font;| face->fontset| = make_fontset_for_ascii_face (f, default_face->fontset, face);| }| else| { .... skip ......|
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
つーか、局所ロジックがそもそもおかしい。 (スコア:1)
fjの教祖様
Re: (スコア:1)
if (fontset == -1) を if (fontset == -1 && default_face) に変えれば
SEGV は避けられるのですけれど、結局 abort() してしまいますからね…。変
えるかどうか微妙なところのように思います。
> fs_query_fontset( name, 0 ) は -1 を返さないのか?
fs_query_fontset( name, 0 ) が -1 を返す可能性があることに今さら気がつ
きました…。
;; ねぼけてるなぁ…
コズミック・ジョーカー
Re:つーか、局所ロジックがそもそもおかしい。 (スコア:1)
default_face って基本 NULL に「ならない」ように初期化されているものなんだっけ?? もしそうなら、この段階で停止させてデバッグを開始させるべきだと思う。
そうでないなら、default_face には「全く何も指定されなかった場合」のケースを入れるべき。
fjの教祖様
Re:つーか、局所ロジックがそもそもおかしい。 (スコア:1)
frame で使われるフォントが変わったりした時は NULL になります。 で、この
時は face_fontset (attrs) が -1 以外の値を返すはずなのでこのようになっ
ているみたいですね。
結局、 fs_query_fontset( name, 0 ) の中で使われている name のワイルドカー
ドを正規表現に変換する関数が `+' をエスケープしていないことが原因でマッ
チせずに -1 を返していることが原因でした。
;; `[' とか `.' とかもエスケープするべきなのだろうにされていない…。
コズミック・ジョーカー
Re:つーか、局所ロジックがそもそもおかしい。 (スコア:1)
もし「絶対返さない」なら、論理的に冗長な何かがある気がする。たとえば、default_face を NULL に書き換えた段階で、NULL にしないで違う値を代入できるはずだ、とか。
その一方で、普通は -1 を返すケースがあるような気がする。いろいろ設定が間違っている場合とか…。
この段階で納得がいかない。
fjの教祖様