From: Araki K. <j00...@ip...> - 2002-01-21 13:34:16
|
荒木です:-) Subject: Re: [Mlterm-dev-ja] proposal of aafont extension From: Takumi ASAKI <as...@os...> Message-ID: <200...@os...> Date: Mon, 21 Jan 2002 21:44:43 +0900 >> どう実装しても、一行の文字数が固定な限り右側が空いてしまうと思うので、 >> 可能でしたら、先に挙げた、一行の最大文字数を不定にするやり方を >> 実現して欲しいです。 朝木さんも指摘しておられますが、一行の文字数を不定にするということは、 VT100 端末の仕様上不可能ですので、そのようにするわけにはいかないのです _o_ > これですが、termcap/terminfoなどとのからみから実現もほぼ無理だと思いますが、 > 実現させたとしてもほとんど意味がないと思いますよ。 > というのは、ターミナルの幅を取得して、自分自身で改行をするアプリも多いですから。 ターミナルの幅を取得して、というのは、resize コマンドで表示されるところの COLUMNS/LINESのことですよね? 実は、コンソールアプリケーションからみえる COLUMNS/LINES と、実際の mlterm のスクリーンのサイズを一致させない、つまり、COLUMNS=110/LINES=45 だけど、実 際のスクリーンの大きさは、COLUMNS=80/LINES=35 のサイズにする、ということで したら実装可能です。 早い話が横スクロールバーを用意するという話です。 たしかに、実装は面倒ではありますが、設計レベルで悩むことでもないので、やろ うと思えば、まぁできます。 # ついこないだまで、実装するか悩んでたりします。 ただ、問題もあるんですよね。 例えば、単にウィンドウリサイズすることによって、コンソールアプリケーション からみたときの画面サイズを変えるわけにはいかなくなります。 ウィンドウリサイズは、あくまで、mlterm のみかけのスクリーンサイズを変える という話にすぎなくなりますので、コンソールアプリケーションからみたときの 端末の大きさを変えるには、設定画面などから変えてあげるなど、今までとは別 の方法が必要になります。 また、そもそも、X 端末は、(いい悪いは別にして)古来コラム幅固定ということに なっておりますし、w3m のテーブル表示など、それを前提にしているコンソール アプリケーションも多々ありますから、コラム幅を可変にしたいという話自体が、 特殊なケースでしかありません(そもそもインド方面への対応という話から始まって いるわけですし) というわけですので、上にあげたウィンドウリサイズのように、コラム幅固定とい う通常の使い方にとって、ただ手間になるだけ、というデメリットがある以上は、 横スクロールは実装しないほうがよいだろう、と思いました。 その辺の問題を解決しつつ、横スクロール(または、可変長コラム幅の場合に、ウ ィンドウの右があいてしまう問題を解決する別の手法)を実装する方法があれば、 提案していただければ、もちろん、実装いたします。 # わたしも、なんかやだなぁ、とは思ってますので ^_^; > そういえば、猫家さんで思い出したんですが、 > 猫家さんのmlterm導入手法のページで記述されている、 > XIMのフォントの問題ですが、現状でもあのままでしょうか。 > # ソースをざっと見ただけでは良く分からなかった…。 > > ~/.mlterm/fontsの設定を使うなどの手はできませんか? > FontPathをいじるのは他への影響が大きすぎますし。 あー、可能です。 # なんで今まで思いつかなかったんでしょ^_^; -A の場合、XIM には ~/.mlterm/font のフォントを、-A -V の場合、~/.mlterm/vfont のフォントを使われるようにしました。 添付のパッチをお試し下さい。 ただし、/usr/local/etc/mlterm 以下に /usr/local/etc/mlterm/font などが入って いる場合、そちらの設定を全部削除しておくか、~/.mlterm/font で、 /usr/local/etc/mlterm/font の設定を(BOLDの設定も含めて)きちんと全部上書きして おかないと、~/.mlterm/font で設定したフォントがつかわれない可能性がありますか ら注意してください。 # で、気付きましたが、etc/font に US_ASCII_BOLD なんてバカな設定をいれてしまっ # てますね ^_^; # US_ASCII_BOLD は、ISO8859_1_BOLD の間違いです。 では -- kiken j00...@ip... Index: src/ml_font_manager.c =================================================================== RCS file: /home/ken/cvsroot/mlterm/src/ml_font_manager.c,v retrieving revision 1.110 diff -u -r1.110 ml_font_manager.c --- src/ml_font_manager.c 2002/01/19 13:08:33 1.110 +++ src/ml_font_manager.c 2002/01/21 12:57:11 @@ -849,20 +849,28 @@ list_str_len = strlen( default_font_name) ; - if( ! is_aa( font_man)) + if( is_aa( font_man)) { - if( ( size = ml_get_all_font_names( font_man->font_custom , - &fontnames , font_man->font_size)) > 0) + if( is_var_col_width( font_man)) { - for( counter = 0 ; counter < size ; counter ++) - { - list_str_len += (1 + strlen( fontnames[counter])) ; - } + size = ml_get_all_font_names( font_man->v_font_custom , + &fontnames , font_man->font_size) ; } + else + { + size = ml_get_all_font_names( font_man->normal_font_custom , + &fontnames , font_man->font_size) ; + } } else + { + size = ml_get_all_font_names( font_man->font_custom , &fontnames , + font_man->font_size) ; + } + + for( counter = 0 ; counter < size ; counter ++) { - size = 0 ; + list_str_len += (1 + strlen( fontnames[counter])) ; } if( ( list_str = alloca( sizeof( char) * list_str_len)) == NULL) |