[Mew-dist 04015] Re: patch to mew-summary-execute-external

Mito mit at example.com
1998年 2月 27日 (金) 21:35:38 JST


※ "酒" こと ksakai at example.com さんの
   『[Mew-dist 03930] Re: patch to mew-summary-execute-external』
   からの引用です。

酒> といった定義ができるようになっていて、関数名が -region で終わるかどう
酒> かで file で渡すか region で渡すかを切り換えているのですが、どうするの
酒> がいいでしょうか? (誰かきれいな仕様を定めてくれたら実装します。)

現状のまま mew-prog-text/html は常に region に対して実行され
るものというのでいいと思います。

mew-ext-prog-url は URL に対して処理するもの、
mew-prog-text/html は region に対して処理するものと割り切っ
た方がいいという意見です。

どうしても region で処理できない関数を呼びたければ、酒井さん
のやったように、

(defun my-mew-prog-text/html-function (begin end)
  (let ((file (format "%s.html" (mew-make-temp-name))))
    (save-excursion
      (set-buffer (mew-current-get 'cache))
      (mew-frwlet
       mew-cs-noconv mew-cs-outfile ;; xxx anyway
       (write-region begin end file nil 'no-msg)
       (FUNCTION-TO-FILE file)))))

のような関数を定義して mew-mime-text/html に設定すればいいわ
けですし。

ちなみに、Emacs 20.2.6 付属の browse-url-of-region はバグっ
てますので、mew-mime-text/html に marker を設定してもらえま
せんでしょうか。

ついでに、mew-ext-url でも w3 以外の関数が使えるようにしてみ
ました。
# "w3" はやめませんか?
-- 
2/27 21:28頃
NECソフトウェア新潟  水戸
mailto:mit at example.com
-------------- next part --------------
--- mew-mime.el	1998/02/27 11:12:56	1.1
+++ mew-mime.el	1998/02/27 12:04:46
@@ -165,6 +165,7 @@
 	  (setq source (buffer-substring begin end))
 	  (set-buffer (mew-buffer-message))
 	  (mew-erase-buffer)
+	  (push-mark)
 	  (insert source)
 	  (funcall mew-prog-text/html (point-min) (point-max))))
        ((stringp mew-prog-text/html)
-------------- next part --------------
--- mew-ext.el	1998/02/27 12:09:07	1.1
+++ mew-ext.el	1998/02/27 12:14:56
@@ -467,26 +467,34 @@
             "#     # #   #   #\n"
             "#     # #    #  #\n"
             " #####  #     # #######\n"
-            "\n\n")
-    (insert (format "You can gain access to the url with \"%s\"\n" 
-		    mew-ext-prog-url)
-	    "\n"
-	    (format "URL:\t\t%s\n" url))
-    (if size (insert (format "SIZE:\t%s bytes\n" size)))
+	    "\n\n"
+	    (format "URL:\t\t%s\n" url)
+	    (if size (format "SIZE:\t%s bytes\n" size) "")
+	    (format "Browser:\t%s\n"
+		    (cond ((and (symbolp mew-ext-prog-url)
+				(fboundp mew-ext-prog-url))
+			   (symbol-name mew-ext-prog-url))
+			  ((stringp mew-ext-prog-url) mew-ext-prog-url)
+			  (t "none")))
+	    "\nTo display this part in Message mode, type "
+	    (substitute-command-keys
+	     "\\<mew-summary-mode-map>\\[mew-summary-insert].")
+	    "\nTo display this text/html contents with browser, type "
+	    (substitute-command-keys
+	     "\\<mew-summary-mode-map>\\[mew-summary-execute-external]."))
     (if execute
 	(cond
 	 ((equal mew-ext-prog-url "w3")
 	  (require 'w3)
 	  (w3-fetch-other-frame url))
-	 (t
+	 ((stringp mew-ext-prog-url)
 	  (apply (function start-process)
 		 (format "*mew %s*" mew-ext-prog-url)
 		 mew-buffer-tmp mew-ext-prog-url 
 		 (append mew-ext-prog-url-args (list url))))
+	 ((and (symbolp mew-ext-prog-url) (fboundp mew-ext-prog-url))
+	  (funcall mew-ext-prog-url url))
 	 )
-      (insert "\nTo show this URL, type "
-	      (substitute-command-keys
-	       "\\<mew-summary-mode-map>\\[mew-summary-execute-external]."))
       )
     ))
 


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