端末エミュレータマニアから見たMinEdの実装のヤバさ
前から気になっていた各端末のタイトルレポートのエンコーディング絡みの挙動の差異も鬼のような判定ルーチンで処理していますね。つまり端末界のsucksをアプリ側で全部引き受けようとする気概がコードから感じられます。
2012-09-27 19:41:17Poderosa UTF-8モード専用の判定ルーチンや古いmltermのバグにアドホック対応したものもありますね。端末判定はDA2応答をベースにいろんなものを加味してやっていて、基本的にterminfoの枠組みを信用していない。
2012-09-27 19:50:56@kefir_ MinEdのthomaswolffさんは偉大なターミナリアンですね。ちょっと前にthomaswolffさんから要望があって対応したのがmodifyOtherKeysだったのですが、目のつけどころが素敵だと思いました。
2012-09-27 21:34:08@arakiken そうでしたか。端末とUnicode、両方において偉大な見識を持った方みたいですね。いまこれの13ページ目をみてるんですが、目からうろこです。 https://t.co/vSBoU0aa
2012-09-27 21:42:07@toby_net それはたぶん現在のtmuxにあるシフトイン操作(0x0fでGL領域に導入されているキャラクタセットが解除される)のバグだと思います。
2012-09-28 15:44:20minedからは出した文字の幅情報はとれてもどんな表示になっているかまでは見えないので、これはtmux側が修正すべき問題… https://t.co/ydvxKsAD
2012-09-28 15:54:45ScreenはDSR対応してないのに、DA2のバージョン番号4 0 1 0 0とか返すので、rxvtあたりと混同されてバグるんかな…
2012-09-28 16:05:54mined、Any Event Trackingもせっかく対応してるけど、これも一部の端末(xterm/PuTTY/mintty/gnome-terminal)の特定のバージョン以外では無効化されている…
2012-09-28 16:21:56結局のところGNU ScreenのDSR 6L(CPR)の動きは正常だけど、普通の端末よりちょっと反応が送れるっぽい。minedのタイムアウトが0秒なのがいけなかったので、minedの方をこう直す。 https://t.co/yNWUZj7c
2012-09-28 23:48:10うわ、起動はしたんだけど、こんどは8bit端末か何かと誤認してひどいことになった http://t.co/aAhn7dIU
2012-09-28 23:58:23わかった。mined、DA2応答見て、screen判定するところまではやってる。で、そのあとコメントで、screen貫通させるパススルーシーケンスでDA2応答をもう一回見る、って書いてあるんだけど(つまり、screenの外の端末に尋ねる)、実際は何もしてない。実装が追いついてない
2012-09-29 01:14:56tmuxのとき、TERM=screenなのでscreenのみに通用するハックをやらかしてしまう。DA2応答を見て分岐してると思ったらその後TERMを見てるので分岐しなかった。そこで、こうすることで、tmuxでMinEdが動くと思います。 https://t.co/g5TQRUOf
2012-09-29 09:51:56MinEd でも僕たちは East Asian Ambiguous Width の呪縛から解き放たれなかった… http://t.co/kmoNn8Ko
2012-09-29 10:40:58MinEdでもずれる場合。AppleのTerminal.appは内部的に行志向になっていて、インド系諸語とアラビア系文字ではDSR 6-CPRをつかっても正確なグリッド位置を返しません。しかがって判定が使い物にならず、こうなる。 http://t.co/XqQBlc1H
2012-09-29 13:07:23