[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Meadow3: build-mail命令が動かない:mailaliases.el と flyspell-mode のせい?



宮川です。2006/8/31 21:20:42

しつこい,自己フォロー(遅れました)とお礼です。

> On 8/28/06, Masahiro MIYAKAWA <mamiyaka@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > ところで,現在の設定では,M-x locate-library で調べると,mailalias.el がロードされているので,

> 上の書き方を見てちょっと心配になったので念のため書きます。

> locate-library は shell での which のように、load-pathにしたがって、
...
> ロードするかを返すものであり、すでにロード済みであるかどうかを
> 知るためのものではありません。
> 言い方を変えると、mailalias.elが未ロードであっても、
> M-x locate-library<RET>mailalias.el<RET> は値を返します。

はい。見事誤解していました。

> ちなみにロード済みかどうかを調べるには (featurep 'xxxx) で調べるのが
> よいでしょう。 xxxx はそのファイルで (provide 'xxxx) として与えられた
> シンボルです。

featurep の使い方はこれなんですね,

以下,再質問をお許しください。

> > ;;alias補完時にmail-aliases 変数の値が t (デフォルト値)ならば
> > ;;build-mail-aliasesが呼び出される。

はい。こういうしくみから出発します。
build-mail-aliases<f>が呼び出される可能性があるわけだから,
すでに,build-mail-aliases<f>がロードされていないといけない,わ
けですね(ここに誤解がある? build-mail-aliases<f> は
mailaliases.el というファイルに含まれている関数だから,
この時点で,(require 'mailaliases)(*)とプログラムに書けばよ
い,あるいは,多分プログラムはこうなっているということでしょうか。(**)

上の(**) は正しいでしょうか。require されるのは関数名だった?

> > に,mailalias.el がロード されたのは,何時どのようにしてだっ
> > たのでしょうか。

上の(**) が正しければ,この質問は取り消します。

あ。ここに,関連したことが書かれているようです。
> 繰返しになりますが、(require 'mailalias) 等でロードを行わずに
                               ----------
やはり,ファイル名でいいのですね。正しくは 'mailaliases です。
> build-mail-aliases<f> を呼び出していたこと自体がそもそも間違いです。

そうですね。

> なので、上に書いたようにbuild-mail-aliases<f>を呼び出す前にrequireするという、
> 正しい呼び出し方をすべきだとしか言いようが無いかと思います。

あ。ここに書かれています。alias を処理するプログラムに
(require 'buildaliase) ですね。(**)は正しいようです。


> > > > > compose-mailを置き換える(adviceする)というアプローチを
> > > しているのが普通じゃないわけです。
> > > >
> > > ただ、compose-mailにadviceがかかっているのはたしかですので、
> > > そのadvice処理でやっていることが必要なことかどうかはご確認
> >       ---------------------------------------
> > > を。
> >  > > わかりました。(難しいです)。ありがとうございました。
> > ちょっと,力が足りません(コードが追えませんでした)。せっか
> > くのご忠告ですが,今回は,ここのところまでで,いいということ
> >  にさせてくださいますようお願いします。

以下は,理解できていません。また,後ほど。
後藤様,ありがとうございました。

----
> 標準以外の、例えば自分の .emacsやそこからloadされているelisp ファイルで
> defadvice という文字列を探せばよいでしょう。
> おおまか、以下のようになってるだろうと思います。

> (defadvice compose-mail (around activate)
>   ;; some code
>   ad-do-it
>   ;; some code
>  )

> そしてそれに心当たりがあるかどうか、です。
> 自分が意図したものなのか、他の人の設定を持ってきたものなのか、
                            ------------------------
これです。  
> はたまた探してもdefadviceが見当たらないか。
-----
> -- 
> Shun-ichi GOTO
-- 
宮川正弘