[Mew-dist 05337] Re: how to fix the (strange?) behavior of contrib/mew-gnus
SAKAI Kiyotaka
ksakai at example.com
1998年 7月 3日 (金) 16:14:40 JST
>> In article <19980702233041I.matusita at example.com>, Makoto MATSUSHITA (まつしたまこと) <matusita at example.com> writes:
> 最近気がついたのですが,少なくともこの version (多分もう少し前からだっ
> たかもしれませんが正確に覚えていません)あたりから,contrib/mew-gnus.el
> を使うと
> ・reply を書こうと r (mew-gnus-reply) を実行して,それから cite しよう
> とする時,draft ができてからその draft に一切何も書かない状態でなら
> 正しく cite できるが,わずかでも(例え空行でも) draft をいじってしま
> うと,cite する内容が正しくなくなる.
こっちは再現しないのですが、
> ・cite つきで reply しようとすると,cursor の場所が問題なのでしょうが,
> (message "You cannot cite a message here.") とかいわれる.
こちらは mew-draft-header が To: の後に飛ぶようになった影響ですね。
(if yank (mew-draft-cite)))
の前に
(goto-char (point-max))
を入れておけば解決します。
ついでに
・folder に save するときに、folder が存在しない場合は新規に folder を
作成するかどうか聞いてくるようにする。
・reply するときに、reply するアドレスに付いているコメントを削除する。
の変更もおこないましたので、パッチを付けておきます。
--
酒井 清隆 (E-mail: ksakai at example.com)
--- mew-gnus.el Fri Jul 3 11:10:18 1998
+++ /home/ksakai/lib/mule/mew-gnus.el Fri Jul 3 16:07:04 1998
@@ -27,8 +27,8 @@
(eval-when-compile
(require 'gnus)
(if (not (or (string-match "^GNUS [34]" gnus-version)
- (string-match "^Gnus v5.0" gnus-version)
- (string-match "^5.[0-3]" gnus-version-number)))
+ (string-match "^Gnus v5.0" gnus-version)
+ (string-match "^5.[0-3]" gnus-version-number)))
(require 'gnus-sum)))
(require 'mew)
@@ -38,9 +38,11 @@
;(defvar mew-prog-imstore "/usr/local/lib/mh/rcvstore")
;(defvar mew-prog-imstore-arg "%s")
-(defvar mew-gnus-save-fixed-folder nil)
+(defvar mew-gnus-save-fixed-folder nil
+ "*If specified, always use it as a candidate to save article.")
-(defvar mew-gnus-save-preserve-dot t)
+(defvar mew-gnus-save-preserve-dot t
+ "*If nil, use hierarchical directory to save article.")
(defun mew-gnus-newsgroup-name ()
(if mew-gnus-save-preserve-dot
@@ -70,17 +72,18 @@
(message (format
"First letter of '%s' must be '+'."
folder))
- (unwind-protect
- (mew-piolet
- mew-cs-infile mew-cs-outfile
- (call-process-region (point-min) (point-max)
- mew-prog-imstore nil errbuf nil
- (format mew-prog-imstore-arg folder)))
- (set-buffer errbuf)
- (if (zerop (buffer-size))
- (message "Article saved in folder: %s" folder)
- (message "%s" (buffer-string)))
- (kill-buffer errbuf)))))))
+ (if (mew-folder-check folder)
+ (unwind-protect
+ (mew-piolet
+ mew-cs-infile mew-cs-outfile
+ (call-process-region (point-min) (point-max)
+ mew-prog-imstore nil errbuf nil
+ (format mew-prog-imstore-arg folder)))
+ (set-buffer errbuf)
+ (if (zerop (buffer-size))
+ (message "Article saved in folder: %s" folder)
+ (message "%s" (buffer-string)))
+ (kill-buffer errbuf))))))))
(defun mew-gnus-post-news ()
"Post a news using mew."
@@ -119,7 +122,7 @@
(goto-char (point-max))
(let ((split-window-keep-point t))
(split-window-vertically))
- (setq from (gnus-fetch-field "From")
+ (setq from (mew-header-extract-addr (gnus-fetch-field "From"))
subject (let ((subject (gnus-fetch-field "Subject")))
(if (and subject
(not (string-match "^[Rr][Ee]:.+$" subject)))
@@ -145,7 +148,10 @@
(insert (concat "Distribution: " distribution "\n"))))
(make-variable-buffer-local 'mew-message-citation-buffer)
(setq mew-message-citation-buffer gnus-article-buffer))
- (if yank (mew-draft-cite)))
+ (if yank
+ (progn
+ (goto-char (point-max))
+ (mew-draft-cite))))
(defun mew-gnus-reply-with-citation ()
"Reply or followup to GNUS article using mew.
Mew-dist メーリングリストの案内