[mew-dist 26213] Re: AOL の引用

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2005年 4月 18日 (月) 20:59:39 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: Re: [mew-dist 26211] Re: AOL の引用
Message-ID: <20050418.180041.15741730.kazu at example.com>
Date: Mon, 18 Apr 2005 18:00:41 +0900 (JST)

> > なにか差障りの無い内容で、たくさん引用しているもの(深さが違うものが混
> > じっているとか)を送っていただけませんか?
> 
> 差障りがあるメールしかなかったので、伏せ字にしてお送りします。

かずさんに送って貰ったメールぐらいだと、末尾のパッチぐらいで OK
なのだけど、blockquote が入れ子になっていたらどうする、とか、
<pre> とか <p> はどうする、と考えていくと結構大変そうです。こん
な力づくじゃなくてスマートに考えなければだめそう。

しかし、本日の逃避はここまで ^^;;

# なので、まだ、emacs-w3m の CVS には反映しません。

-- 
白井秀行 (mailto:shirai at example.com)

Index: mew-w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/mew-w3m.el,v
retrieving revision 1.55
diff -u -u -r1.55 mew-w3m.el
--- mew-w3m.el	22 Mar 2005 08:32:54 -0000	1.55
+++ mew-w3m.el	18 Apr 2005 11:55:05 -0000
@@ -151,6 +151,42 @@
 			     'w3m-images (not image))
 	  (set-buffer-modified-p nil)))))))
 
+(defvar mew-w3m-region-cite-mark "&gt;&gt;&nbsp;")
+
+(defun mew-w3m-region (start end &optional url charset)
+  "w3m-region with inserting CITE."
+  (save-restriction
+    (narrow-to-region start end)
+    (let ((case-fold-search t)
+	  pos lines tagbeg0 tagend0 tagbeg1 tabend1)
+      (goto-char (point-min))
+      (while (w3m-search-tag "blockquote")
+	(setq tagbeg0 (match-beginning 0))
+	(setq tagend0 (match-end 0))
+	(when (w3m-search-tag "/blockquote")
+	  (setq tagbeg1 (match-beginning 0))
+	  (setq tagend1 (match-end 0))
+	  (setq lines (buffer-substring tagend0 tagbeg1))
+	  (delete-region tagbeg0 tagend1)
+	  (insert "<br>\n")
+	  (setq pos (point))
+	  (insert "\n<br>\n")
+	  (goto-char pos)
+	  (insert (with-temp-buffer
+		    (insert lines)
+		    (goto-char (point-max))
+		    (skip-chars-backward " \t\n\f\r")
+		    (delete-region (point) (point-max))
+		    (goto-char (point-min))
+		    (skip-chars-forward " \t\n\f\r")
+		    (insert mew-w3m-region-cite-mark)
+		    (while (and (w3m-search-tag "br")
+				(not (eobp)))
+		      (skip-chars-forward " \t\n\f\r")
+		      (insert mew-w3m-region-cite-mark))
+		    (buffer-substring (point-min) (point-max))))))
+      (w3m-region (point-min) (point-max) url charset))))
+
 ;; processing Text/Html contents with w3m.
 (defun mew-mime-text/html-w3m (&rest args)
   "View Text/Html contents with w3m rendering output."
@@ -208,9 +244,9 @@
 			 "-o" "ext_halfdump=1"
 			 "-o" "pre_conv=1"
 			 "-o" "strict_iso2022=0")))
-	   (w3m-region begin end xref)))
+	   (mew-w3m-region begin end xref)))
 	((null cache)	;; Mew-2 + w3m, w3mmee
-	 (w3m-region begin end xref (mew-charset-guess-region begin end)))
+	 (mew-w3m-region begin end xref (mew-charset-guess-region begin end)))
 	(t		;; Old Mew
 	 (setq charset (or (mew-syntax-get-param params "charset")
 			   (save-excursion
@@ -221,10 +257,10 @@
 	   (setq wcs mew-cs-text-for-write))
 	 (mew-frwlet
 	  mew-cs-dummy wcs
-	  (w3m-region (point)
-		      (progn (insert-buffer-substring cache begin end)
-			     (point))
-		      xref))))
+	  (mew-w3m-region (point)
+			  (progn (insert-buffer-substring cache begin end)
+				 (point))
+			  xref))))
        (put-text-property (point-min) (1+ (point-min)) 'w3m t)
        (put-text-property (point-min) (1+ (point-min))
 			  'w3m-images mew-w3m-auto-insert-image)))))




Mew-dist メーリングリストの案内