[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: M-x w3m



>> On Fri, 12 Oct 2001 13:58:45 +0900
>> 「山」== yamaoka@jpl.org (Katsumi Yamaoka) said as follows:

山> カーソルが何かのバッファの URL 文字列の上にあるのに、M-x w3m で単
山> に既存の w3m バッファがポップアップされるだけでは不便なので、通常
山> はミニバッファで URL 文字列を入力できるようにしてみました。

私は、browse-url で w3m を使うように設定し、URL 文字列がバッファ上にあ
る場合には browse-url-at-point (私の環境では C-x m)を呼び出すようにし
ています。

ですが、山岡さんの仕様もなかなか良いものだと思います。


山> 単に w3m バッファをポップアップするだけで良い場合は、prefix arg を
山> 付けて (C-u や ESC 1 などを前置して) M-x w3m すると可能です。

私の場合、前置引数を付け忘れることがしょっちゅうなので、前置引数なしで
も、簡単に popup できると嬉しいです。

というわけで、以下のような変更を考えてみたのですが、どうでしょうか。
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.427
diff -u -u -r1.427 w3m.el
--- w3m.el	2001/10/12 04:58:54	1.427
+++ w3m.el	2001/10/12 06:22:24
@@ -1899,25 +1899,30 @@
      ((eq flag 'lambda)
       (if (w3m-arrived-p url) t nil)))))
 
-(defun w3m-input-url (&optional prompt default)
+(defun w3m-input-url (&optional prompt initial default)
   "Read a URL from the minibuffer, prompting with string PROMPT."
   (let (url)
     (w3m-arrived-setup)
     (unless default
-      (setq default (thing-at-point 'url)))
+      (setq default w3m-home-page))
+    (unless initial
+      (setq initial (thing-at-point 'url)))
     (setq url (let ((minibuffer-setup-hook
 		     (append minibuffer-setup-hook '(beginning-of-line))))
 		(completing-read
 		 (or prompt
-		     (if default
-			 "URL: "
-		       (format "URL (default %s): " w3m-home-page)))
-		 'w3m-url-completion nil nil default
+		     (format "URL (default %s): "
+			     (if (stringp default)
+				 (if (eq default w3m-home-page)
+				     "HOME" default)
+			       (prin1-to-string default))))
+		 'w3m-url-completion nil nil initial
 		 'w3m-input-url-history)))
-    (if (string= "" url) (setq url w3m-home-page))
+    (if (string= "" url) (setq url default))
     ;; remove duplication
-    (setq w3m-input-url-history
-	  (cons url (delete url w3m-input-url-history)))
+    (when (stringp url)
+      (setq w3m-input-url-history
+	    (cons url (delete url w3m-input-url-history))))
     ;; return value
     url))
 
@@ -3973,10 +3978,11 @@
 The value of `w3m-pop-up-frames' specifies whether to pop up a new
 frame, however, it will be ignored (treated as nil) when this command
 is called non-interactively."
-  (interactive (let ((arg (and current-prefix-arg (w3m-alive-p))))
-		 (list (unless arg
-			 (w3m-input-url))
-		       arg)))
+  (interactive
+   (let ((default (when (w3m-alive-p) 'popup)))
+     (list (unless (and current-prefix-arg default)
+	     (w3m-input-url nil nil default))
+	   default)))
   (let ((buffer (w3m-alive-p))
 	(focusing-function
 	 (append '(lambda (frame)
-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )