Ticket #8605

ステータスラインの情報が途中までしか表示されない場合がある
Date d'ouverture: 2006-06-29 22:43 Dernière mise à jour: 2006-07-11 07:55

Rapporteur:
Propriétaire:
Type:
État:
Ouvert [Owner assigned]
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Accepted
Fichier:
Aucun

Détails

xterm などを使って 100x25 等の広さにして、tty 表示を
使っていると、
show weight とか、混乱、病気、盲目、眩暈、幻覚、など表
示して
長くなったステータスラインが途中で切れます。
# 80桁目で切れている様です。

80x25 など、狭い画面であれば、適切に次の行に折り返され
たり、
短いフォーマットで表示されたりするので、広い画面の場合でも
途中で切れたりせず、適切に折り返したりされるべきだと思
います。

本家の方に報告しようとしたのですが、エラーで登録できな
かったので
こちらに報告しておきます。

Ticket History (3/4 Histories)

2006-07-08 02:40 Updated by: so-miya
  • Propriétaire Update from (Aucun) to so-miya
  • Résolution Update from Aucun to Accepted
Commentaire
Logged In: YES
user_id=1624

ご報告ありがとうございます。

X11のコンパイル環境が手元にないのでワタシには修正できません
が、ソースを粗解析してみました。
部分的な修正では解決できないかもしれませんね。

shorten_bot2関数にてbot2_abbrevが4より大きいときに
文字列を切ってしまっているのが直接的な問題。

shorten_bot2関数のfor loop脱出条件を
tty_putstr関数でshorten_bot2関数を呼び出すときの条件
(int)strlen(str + k + 1) >= CO
と同じ条件にしないといけないと思うのだけど・・・
美しくないなぁ。
2006-07-08 04:03 Updated by: ide
Commentaire
Logged In: YES
user_id=9391

> shorten_bot2関数にてbot2_abbrevが4より大きいときに
> 文字列を切ってしまっているのが直接的な問題。

これが問題という訳ではなくて、win/tty/wintty.c で、
CO : 実際の広さ
cw->cols, cw->maxcol : MAP の広さ(COLNO=80) で limit がある
の使い分けに失敗している事が原因のような気がします。


> X11のコンパイル環境が手元にないのでワタシには修正できません

Win 環境が手元にないので、可能かどうかわからないのですが、
Windows の tty 環境にてコンソールを広くしても再現できるかも
しれません。
2006-07-11 05:33 Updated by: ide
Commentaire
Logged In: YES
user_id=9391

so-miya さんの
http://www31.ocn.ne.jp/~so_miya/rldiary/diary200607p1.html#2006070901
の日記をみました。

> Windows Xp上ではターミナルサイズを変更
> しても横幅を表すCOもcw->colsも80から動かないため、再現しな
いみたい

一応確認ですけど、起動後にサイズ変更していないでしょうか?
kterm 上では起動時にしかサイズを見ていないようなので。


> Windows Xp上で動作させると、ターミナルの横幅を100にして起
動したときでも
> COはこの時点で80なのだが、kterm上ではどうなのだろうか。

kterm上ではターミナルの横幅の値100が入ります。
このために 100 桁目で折り返して表示させようとしている(CO 利
用)一方、
80 桁目までしか表示しない実装になっているので不具合を生じて
いるようです。

# 日記で引用されているコードのすぐ下の for loop の繰り返し数
の所とか。
# ここだけ直しても不完全の様ですが。


簡単に直すなら、CO も COLNO=80 を最大値にするようにしておけ
ばいい気がします。

2006-07-11 07:55 Updated by: so-miya
Commentaire
Logged In: YES
user_id=1624

一応、起動時に変更済みと起動後に変更の両方を試したけど、だめ
でしたね。get_scr_sizeの呼び出し位置とかを見てみたけど、OS固
有部分はちょっと追いきれなくてね。
なんらかのフラグで固定値(80,25)もしくは構造体値を使用してい
るみたいだけど、障害の本質の部分ではないのであまり深くは調べ
てません。

cw->colsのほうはCOもしくは80のどちらかの小さいほうを採用して
いるようですが、これはcw->dataの配列サイズとも関連しているの
かな。

Attachment File List

No attachments

Modifier

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