Mitsutoshi NAKANO
itsan****@gmail*****
2015年 1月 28日 (水) 00:33:47 JST
2015年1月27日 22:12 ARAI Shun-ichi <herme****@ceres*****>: > あらいです。 > > 初めまして。 > 先日から試用させていただいています。辞書学習など、これまで使っていた > 古いバージョンで気になっていた幾つかの点が改善されていて大変快適です。 > > ところで、Subjectに書いた件ですが、\C-^ で egg-sim を使おうとすると > 「Invalid code(s)」というエラーメッセージが出て、通常の状態に戻ってしま > います。 > > 調べたところ、次のようなデバッグ出力が得られました。 > > Debugger entered--Lisp error: (error "Invalid code(s)") > make-char(latin-iso8859-3 112) > make-char-list(latin-iso8859-3) > byte-code("\300\301\302\303!E\207" [menu "ISO 8859-3:" make-char-list latin-iso8859-3] 4) > (defvar egg-sim-latin-3-menu (byte-code "\300\301\302\303!E\207" [menu "ISO 8859-3:" make-char-list latin-iso8859-3] 4)) > > Emacs Lispはあまりよくわからないのですが、egg-sim.elc をロードしたと > きに、egg-sim-latin-3-menu を設定する個所で、make-char-list が未定義の > 個所にぶつかって失敗しているのではないかと思います。 > このような場合、たとえば、エラーを受け止めてそこをスキップするような > ことができるのでしょうか。 > 何かうまい対処法があるか、コメントよろしくお願いします。 tamago-tsunagiをお使いいただいてありがとうございます。 私の環境ではC-^はundefinedなので (load-library "egg-sim")したところ、 あらいさんのご指摘された現象が再現いたしました。 私は現在以下の環境でtamago-tsunagiを使用しています。 hard: Sony PCG-SRX7S/P RAM 512 MB http://www.sony.jp/products/biz/vaio/PCG-SRX7S_P/spec.html OS: Lubuntu 14.04.1 Emacs: 24.3+1-2ubuntu1 (Lubuntuのパッケージ) Tamago-tsunagi-5.0.1.0 このマシンでapt-get source emacs24でソースをダウンロードして ちょっとだけ追いかけてみました。 make-char()のソースを確認したところ、以下のようになっていました。 http://git.savannah.gnu.org/cgit/emacs.git/tree/src/charset.c?h=emacs-24 c = DECODE_CHAR (charsetp, code); if (c < 0) error ("Invalid code(s)"); return make_number (c); おそらく、ここのerror()が呼ばれているのだと思います。 error()を追っていくとSIGABRTを送信しているようです。 どこかでこのシグナルをハンドリングしている方法があると 思うのですが、追い切れていません。 また、申し訳ないですが、本来どう修正すべきであるのかについても 正解を持ち合わせておりません。 Tamagoを延命させたい一心でprojectを立ち上げた私ですが お恥ずかしいことにTamagoにもEmacs-lispにもEmacsにも さほど詳しくはありません。 お力になれずに申し訳ないのですが、 せっかく報告された問題ですから、 明日から可能な限り調べてみたいと思います。 チケットを発行していただけたら幸いです。 https://sourceforge.jp/ticket/newticket.php?group_id=9668 ヘボな私ですが今後ともよろしくお願いいたします。 -- Mitsutoshi NAKANO <ItSAN****@gmail*****> <bkbin****@rinku*****> <https://twitter.com/ItSANgo> <http://d.hatena.ne.jp/Itisango/> ただ今就職活動中。