[mew-dist 27782] Re: "_"
KOIE Hidetaka ( 鯉江英隆 )
hide at example.com
2007年 8月 8日 (水) 21:43:06 JST
flowedのメイルに対する返信がflowedにならないとうれしくない気がしますが、
RFCをみると予想外に細かいルールがあって実装は断念しました。
他のメーラーはどうなっているかで試してみたところ
Operaはflowedになりませんでした。がっくり。
#他のは試していません
自分で書けそうなところで、
引用符を ">" から好きな文字列に変換する機能をつけてみました。
最初、text-propertyかoverlayをつかって
スクリーン上の変換にとどめようとしたのですが、
うまくゆかなかったのでバッファを書き換えてしまっています。
なので "A" で返信するときは
"," でflowedの処理なしで表示してからがよいとおもいます。
それと、まだRFCは半分くらいしか読めていないのですが
DASH DASH SP はfixedとしてあつかうとか
>From は引用としてあつかわないようにとかあるようです。
Index: mew-decode.el
===================================================================
RCS file: /cvsmew/mew/mew-decode.el,v
retrieving revision 1.94
diff -u -p -r1.94 mew-decode.el
--- mew-decode.el 6 Aug 2007 03:56:21 -0000 1.94
+++ mew-decode.el 8 Aug 2007 12:19:17 -0000
@@ -712,6 +712,31 @@ Return a part syntax after moving the be
((looking-at "^$") -1)
((looking-at "^>*") (- (match-end 0) (match-beginning 0)))))
+;;KOIE
+(defvar mew-excerpt-decoration mew-cite-prefix)
+(defun mew-decorate-excerpt ()
+ (beginning-of-line)
+ (while (char-equal (char-after) ?>)
+ (delete-char 1)
+ (insert mew-excerpt-decoration)))
+;;失敗
+;;(defun mew-decorate-excerpt ()
+;; (beginning-of-line)
+;; (while (char-equal (char-after) ?>)
+;; (text-property (point) (1+ (point)) 'display mew-excerpt-decoration)))
+;;失敗2
+;;(defun mew-decorate-excerpt ()
+;; (beginning-of-line)
+;; (while (char-equal (char-after) ?>)
+;; (let ((ov (make-overlay (point) (1+ (point)))))
+;; (overlay-put ov 'mew-xxx t)
+;; (overlay-put ov 'after-string mew-excerpt-decoration)
+;; (overlay-put ov 'invisible t)
+;; (overlay-put ov 'evaporate t)
+;; )
+;; (goto-char (1+ (point)))))
+;;失敗の原因: current-bufferがcacheでメッセージバッファに転写するときに情報が落ちるからか?
+
(defun mew-decode-flowed (beg end delsp)
"Decoding wrapped lines encoded with RFC 3676"
(save-restriction
@@ -720,9 +745,11 @@ Return a part syntax after moving the be
(let ((adj (if delsp 2 1))
(level (mew-decode-flowed-level))
next-level softbreak)
+ (mew-decorate-excerpt) ;KOIE
(end-of-line)
;; char-before causes an error at the beginning of buffer
(if (and (not (bobp)) (= (char-before) mew-sp))
+ ;; KOIE: should check ^-- $
(setq softbreak (1+ (point)))
(setq softbreak nil))
(while (= (forward-line) 0)
@@ -735,6 +762,7 @@ Return a part syntax after moving the be
(delete-char 1))
(while (char-equal (char-after) mew-sp)
(delete-char 1))))
+ (mew-decorate-excerpt) ;KOIE
(end-of-line)
(if (= (char-before) mew-sp)
(setq softbreak (1+ (point)))
--
KOIE Hidetaka <hide at example.com>
Mew-dist メーリングリストの案内