get-buffer-process が常に nil を返す件

simple-hatena-mode がどうして動かないかの原因を探っていたら、どうやら get-buffer-process に問題がありそうだと分かってきました。
以下は実際のソースの一部です。

    (message "%s" "Now posting...")
    (let* ((buffer (get-buffer-create simple-hatena-process-buffer-name))
           (proc (get-buffer-process buffer)))
      (if (and
           proc
           (eq (process-status proc) 'run))

proc という変数に (get-buffer-process buffer) の値を設定していますが、僕の使っている Meadow3 だとここの proc は nil になります。
というか、少し実験してみて分かったのですが、get-buffer-process はどんな場合でも nil になるようです。
なんと (get-buffer-process (current-buffer)) でも nil になりました。
get-buffer-process は引数に与えられたバッファに対応付けられているプロセスを返す関数です。
simple-hatena-mode では、"*SimpleHatena*" という simple-hatena-mode で動いているバッファのプロセスを得るために使われています。
また、(current-buffer) は現在のバッファを返す関数です。
現在のバッファのプロセスを取れないくらいだから、これはもう get-buffer-process って関数自体機能していないんじゃないんでしょうか。
これって Meadow3 のバグなのかな?(´・ω・`)
get-buffer-process はけっこう重要そうな関数なので、僕の勘違いであってほしいところです。

追記

プロセスの一覧を確認する関数ってないのかなーと思って調べてみたら、2つ見つかりました。

  • list-processes
    • 活性な全てのプロセスの一覧を表示する
  • process-list
    • 削除されていない全てのプロセスのリストを返す

それでこの2つを使ってプロセスの一覧を確認してみたんですが、migemo のプロセスくらいしかありませんでした。
ぐぐってみると、同じ Meadow でもMeadowからcoLinuxのシェルを叩く - にゃあさんの戯言日記あたりでは "*shell*" というプロセスを処理しているように見えるので、僕も "*shell*" プロセスを作ってみようと思ったのですが出来ませんでした。なぜだ・・・。
バッファは作れるんですけどね。プロセスを得るのはダメでした(´・ω・`)


それでもう migemo のプロセスがどうやって作られているかを調べるしかなくなったわけです。
調べてみたら migemo は cmigemo 関連の migemo.el で作られていることが分かりました。
また、migemo.el のソースを読んでみると、start-process という関数でプロセスを作っていることも分かりました。
で、今日はここまで分かったということでよしとします。疲れたのでw
start-process を使って process を作る方法が分かれば、それで simple-hatena-mode の問題は解決するかもしれません。
僕の Meadow3 で動かないのだから、たぶん同じように動かない人もいると思います。
emacs 使えばいいじゃんって話もあるかと思いますが、僕は Meadow のことをけっこう気に入っているので、Meadow で simple-hate-mode を動かすためにもう少し調べてみたいと思います。
そういえば、これうまくいったらやっぱり CodeRepos にコミットした方がいいんだろうか。
まあ、今は考えないことにしよう。