[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New nnshimbun.el based on shimbun library
>>>>> In [semi-gnus-ja : No.6059]
>>>>> Katsumi Yamaoka <yamaoka@namazu.org> wrote:
山岡> Gnus と gnus の切り替え、という以前に Gnus での試用はこれからで
山岡> す。
遅くなりましたが、Oort Gnus v0.04 における nnshimbun.el の試用リ
ポートします。
まあ当然なのかもしれませんが、特に問題無く使えています。
以下はそのやり方。ぼくは Gnus を使うときは gnus の path を
load-path から削除することを前提としています。
・Gnus と gnus の切り替えは、取りあえず、同じディレクトリに
gnus.elc と mailcap.elc が存在するか、で調べることにしました。
[1]
・Gnus には `gnus-clfns' が無いので簡単に `ignore-errors' で囲っ
てしまいましたが、究極的には run-time cl functions を使わない
ようにしてしまえば良いのではないかと思います。
[1]
・関数 `nnshimbun-make-shimbun-header' の、Gnus と gnus で違う部
分を static-if で切り替えてしまうのは駄目ですか?
・Gnus には gnus-bbdb.el が無いし、まんま gnus から持って来ても
動かないので BBDB を使わないようにしました。
[2]
・Gnus 用に `gnus-group-make-shimbun-group' を定義しました。
[2]
[1] は添付したパッチに含まれています。このパッチを当てた
nnshimbun.el を Gnus のソース (lisp/) ディレクトリに押し込んで
make install したものを使っています。
[2] はやはり添付した .gnus に書き込むプログラムで実現しています。
--- nnshimbun.el~ Mon May 28 02:28:05 2001
+++ nnshimbun.el Mon May 28 12:09:37 2001
@@ -34,7 +34,9 @@
(gnus-declare-backend "nnshimbun" 'address)
(eval-when-compile (require 'cl))
-(eval-when-compile (require 'gnus-clfns))
+(eval-when-compile
+ (ignore-errors;; Gnus does not have `gnus-clfns'.
+ (require 'gnus-clfns)))
(require 'nnheader)
(require 'nnmail)
@@ -148,9 +150,18 @@
(substring x 6)
x))
+(eval-when-compile
+ ;; To avoid byte-compile warning for Gnus.
+ (autoload 'mime-entity-fetch-field "mime"))
+
(eval-and-compile
- (if (fboundp 'mime-entity-fetch-field)
- ;; For Semi-Gnus.
+ (if (let ((gnus (locate-library "gnus"))
+ ;; Gnus has "mailcap.elc" in the same directory of "gnus.elc".
+ (mailcap (locate-library "mailcap")))
+ (and gnus mailcap
+ (not (string-equal (file-name-directory gnus)
+ (file-name-directory mailcap)))))
+ ;; For Semi-gnus.
(defun nnshimbun-make-shimbun-header (header)
(shimbun-make-header
(mail-header-number header)
;;[2]
(eval-after-load "gnus-group"
'(or (fboundp 'gnus-group-make-shimbun-group)
(progn
(eval-after-load "gnus-art"
;; Don't use gnus-bbdb. :-<
'(setq gnus-article-prepare-hook nil))
(defvar gnus-group-shimbun-server-history nil)
(defun gnus-group-make-shimbun-group ()
;; T-gnus の gnus-group.el から同名の関数をコピー。
)
(if (featurep 'bytecomp)
(byte-compile 'gnus-group-make-shimbun-group)))))
--
Katsumi Yamaoka <yamaoka@jpl.org>