2006年2月15日から2006年2月12日までの日記を表示中

2006年 2月 15日 (水)

uim.elとEmacs-22.0.50

Emacs22だとundoがおかしくなる問題を追ってみました.どういうわけかuim.elでは プリエディット表示 → Enterで確定 した際に,buffer-undo-listに,commitされた範囲とあわせてcommit後のカーソル位置が入ってしまい,undoするとcommitしたところが消えた上で,カーソルが変なところに飛びます.Emacs21だとこんな現象は無いわけで・・・.手で関数呼んでinsertした場合は普通.anthy.elでも無問題.うーん.

外から叩いてもよくわからんので,Emacs22のソースを見てみることに.editfns.cにinsertの定義が書いてあって,追っていくと insdel.cの insert_from_string が呼ばれてて,その中で insert_from_string_1 が呼ばれてます.で,こん中で undo.c にある record_insert ってのがさらに呼ばれてて,これがinsertが呼ばれたときに buffer-undo-list を更新する関数っぽい感じ.

record_insert の中を見ると・・・Emacs22ではEmcas21と違ってrecord_pointというのを呼んでいるではないですか.record_point は条件次第でカーソル位置(point)とかをbuffer-undo-listに記録する関数のようです.見てみると,last_point_position ってのが現在のカーソル位置と違うときに,last_point_position の方がbuffer-undo-listに登録されるようになってます.

で,こっからは適当.どうも last_point_position はコマンドループの最初の方で,その時点でのpointが設定される模様.ということは,キーが押された瞬間のpointが設定される? とすると・・・

  1. 「aiueo」と入力
  2. プリエディットとして「あいうえお」と表示され,カーソルは「お」の後に
  3. Enterを押すとコマンドループが開始して「お」の後のカーソル位置が last_point_position に入る(多分)
  4. プリエディットを消すとpointが「あ」があった位置になる
  5. 確定文字列の「あいうえお」をinsertすると,この時点で point と last_point_position の値が違うため,last_point_position がbuffer-undo-listに追加されてしまう

ということですか? でも,同じことはanthy.elでも起こり得るはずなのに,なんであっちは平気なのか.・・・あー,なるほど.anthy.elではinsertしてる間は buffer-undo-listを更新しないようにしていて,inesrt後に,buffer-undo-list に手でundo用の記録を追加してますね.なるほど,だから起こらんのか・・・って,ここ書いたの漏れですか(;´Д`)?

というわけで,uim.elでもcommitされた文字列のinsert分は,手でbuffer-undo-listに追加するように変更して問題回避したつもり.いやー,疲れました( ´Д`)=3

[コメントを書く]

nosuke 2006/02/18(土) 03:12:18
どひゃー,うまくいってなかった.というかanthy.elではたまたま
うまくいっていた予感!

2006年 2月 14日 (火)

uim.el

昨日のバグは,transient-mark-modeでマークが活性化されているときに M-x comment-region とかしようとすると Escape 押した時点でマークが不活性化されてしまい選択領域が外れてしまってしょぼーん(´・ω・`) というものでした.次のキー待つ場合は deactivate-mark を必ずnilにしてやるといいのかな.というわけで1行足しただけ.こんなに早く済むとはね.にしてもキー回りのコードはほんとやばい・・・.

一方,Emacs-22でundoしたときにカーソルの位置がずれる問題は,undoリストに何か余計なものが混ざるのが原因ぽいことはわかったんですが,なんで混ざるのか謎です.同じことやってもEmacs-21だと混ざらんようです.うーむ.

[コメントを書く]

nosuke 2006/02/15(水) 22:36:43
Emacsのソースを眺めてみた結果,どこで変な値が混ざるのかは
一応わかったつもり.でも,なんでそんなことやるようになってんのか
まったく理解できません・・・.敢えて言おう,

『Emacs-22ノバグチャウンカコレホイショハーフードッコイショ

詳しくは本日の日記に・・・書けたらいいなぁ
tacash ◆cR08PK3l1o 2006/02/16(木) 02:44:41
FBJネタツタワリニクインチャウンカホイショッフンフンフーン

xmms-crossfade

そういえばaudaciousにまだいれてなかったなーとWebを見たら0.3.10なんてのが出てました.xmmsとaudaciousの両方に入れようと思ったら,どちらも本体にパッチを当てる必要がある模様.両方ビルドし直してやったんですが,audaciousの方がxmms-crossfade有効にすると曲の変わり目で落ちるようになっちゃいました.まったく意味が無いっつーかなんつーか(´・ω・).0.2なのが悪い?

CDとか

A.aurantiaca (Alstroemeria Records)
LPサイズのジャケットの東方アレンジですよ.うーむ,噂には聞いてましたが,本当に中はCDだけなんですね・・・.最初の曲が良かったです.6曲目の時計コチコチは面白いんですが耳にキツいです.7曲目は「六十年目の東方裁判」に歌つけてて相当すごいと思うんですが,肝心の歌がちょっと・・・(´・ω・).・・・何かこういうの続いちゃうと次は考えちゃうかも・・・.

2006年 2月 13日 (月)

uim.el

Mandrivaの話はどうにか解決.が,その後バグが発覚.うーん,しかも今回はイベント回りなのでかなり直すのがしんどいかも(;´Д`).

Anthy

7100bから7411に上げてみました.お,最初なんだか変な候補が出てくる気がするけど,学習がよくなってる気がする.と思ったら「(;゜Д゜) (゜A ゜;(゜д゜;) ナ、ナンダッテー!」と出そうとしたら「(;゜Д゜)」しか出ない現象が.ああ,これはこれのことなのかぁ.7413に上げて解決(゜Д゜)ウマー.

2006年 2月 12日 (日)

MandrivaとVMware

Mandrivaでuim.elがうまく動かないというお便りを頂きました.症状を見てもなんで動かないのかよくわかなかったので,とりあえずVMwareで動かしてみることに.isoをダウンロードしてさあVMwareを起動よ!と思ったら何か「libX11.so.6がみつからない」とかいって上がりませんよ.

確かにT42の環境はXも/usr/local以下に入れていて(/usr/X11R6が無い),さらに/etc/ld.so.confに/usr/local/libを書いていないという変態環境なため,バイナリ配布のモノとかはLD_LIBRARY_PATH=/usr/local/libとかやらないと起動せんのですが,これはちゃんとWMwareの起動スクリプトに書き足してます.だいたい一昨日は普通に動いてたし.一昨日・・・あgtk2のバージョン上げたけどもしかしてそれ?

VMwareは自前でgtk2とか一式持っててX関連のライブラリだけインストール先のものを使うようになってるっぽいんですが,今まではgtk2とかも自分で入れた奴使わせてました・・・というかどっちにリンクしてるかとか全然意識してませんでした.もしかして一部のダイアログのレイアウトが崩れてたのはこれが原因か?

というわけでLD_LIBRARY_PATH=/usr/local/libを消して,代わりにLD_PRELOADを設定してX関連の必要なものを全部書き出してやったところ,無事起動するようになりました.ダイアログも崩れなくなった.なるほど.

で,再びMandrivaなんですがお便りにあった2005LEってのを入れてみてます.urpmiなんていう未知のコマンドに戸惑いながら,現在cookerにアップデート中(のはず).はたして動かない原因はわかるのか・・・っ!?

[コメントを書く]

nosuke 2006/02/13(月) 09:41:46
うーん,自分の環境だと普通に動くなぁ・・・.

2006年 2月 12日 (日)

CDとか

矩形波文箱 -花月夜- (フランソワさんのよもぎ畑)
お馴染みの東方ファミコンアレンジ.こりゃすごいです.「ファミコンの限界を超えた移植」という感じです.自分の中ではコナミ(笑).ブックレットも小ネタ満載で実に面白いです.CD全体で見ると冬コミで買った東方アレンジの中で一二を争うデキかと.
漂泊浪漫 (大江戸宅急便)
大江戸宅急便の東方アレンジ.うまいですなぁ.7曲目とか14曲目とか特によかったっす.

冬コミでゲットしたCDも残すところあと5枚くらいですよ.その後買ったやつが10枚ほど控えてますけどね・・・.

[コメントを書く]

nosuke 2006/02/13(月) 09:41:46
うーん,自分の環境だと普通に動くなぁ・・・.

東方文花帖

ついに全ステージクリアしましたよ.いやー,面白かった.よみさんありがとう.号外も楽しみじゃ.

おぼの@:
やっぱり戦跡を表にまとめるんでしょ
おぼの@:
永夜抄みたいに

工エエェェ(´д`)ェェエエ工.(゜Д゜)ノ⌒ ホラヨ

2006年2月15日から2006年2月12日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2006年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ