トップ «前の日記(2024-06-18) 最新 次の日記(2024-06-30)» 編集

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2024-06-28 [長年日記]

_ [FreeBSD]kterm + ibus-anthyでXIM入力

kterm + ibus-anthyで、なぜか全角~がXIM経由で入力出来ないので要調査

確認した振る舞い

  • xterm + ibus-anthyなXIM入力
    • U+FF5Eが入力される
  • firefox + ibus-anthyな入力
    • U+FF5Eが入力される
  • kterm + ibus-anthyなXIM入力
    • OverTheSpotで入力列を確定しても、shell promptに入力されない
    • ;~;を確定するとshell promptに入力されるのは;;
  • kterm + copy&paste
    • U+301C(WAVE DASH)及びU+FF5E(FULLWIDTH TILDE)をcopy&pasteで入力可能・表示グリフは異なるので別々の符号として扱われ、レンダリング時の内部処理でも別グリフとして扱われている
  • emacs + ibus-anthyなXIM入力
    • OverTheSpotで入力列を確定しても、bufferに入力されない
    • ;~;を確定するとbufferに入力されるのは;;

推論メモ

  • ibus-anthy側では、U+FF5E(FULLWIDTH TILDE)として扱われている (xterm XIM入力からの推論)
    • 関係する textproc/ibus, japanese/ibus-anthy, japanese/anthy の中で、U+FF5Eはどのcomponent由来か? (XIMが勝手に変換しているとは思えない)
  • utf8モードのktermは、copy&paste時はUTF-8を生のまま扱っているが、XIM入力はEUC-JP localeで受け取り内部でEUC-JP→UTF-8変換している (確認した実装)
    • ibus側もしくはXIM層(Xserver or library)でUTF-8→EUC-JP変換時にU+FF5Eが無効符号として消滅している (仮説 1)
    • 変なEUC符号位置に符号化されたU+FF5Eが、kterm側のEUC-JP→UTF-8変換でデコード出来ていない (仮説 2)
    • 以前調査で使ったkterm用の入力検証パッチを当てて、XIMからの入力列を拾えば、消滅地点がXIM以前かkterm受け取り後か検証できるはず

別解

  • XIM入力をutf8モード以外で使う予定がなければ、XIM locale(eucJPLocaleリソース)をja_JP.UTF-8で初期化して、XIMからの入力を無変換で取り込めば動く?

~(U+007E)の全角対応の不一致問題

  • xterm + ibus-anthty (XIM)では U+FF5E(FULLWIDTH TILDE)が割り当てられている
  • emasc + anthy (japanese-anthy input mode)では U+301C(WAVE DASH)が割り当てられている

調査結果

  • ibus-anthyによるXIM入力での変換マップは、engine/python3/tables.pyに実装されている
  • UNICODEの実体参照(\uff5e)で記述されている

カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記