[Mew-Win32 00518] browse-url-or-mew
Hideyuki SHIRAI
Shirai at example.com
1998年 3月 31日 (火) 11:06:55 JST
白井です。
昨日、なんだか、browse-url-at-pointの挙動が、Emacs20.2と19.28.1
で違うなぁと思って調べてみたら、やっぱり全然違ってました。^^;;;
MeadowとMule for Win32も同様です。
# Emacs20.2のbrowse-url.elって、browse-url-regexp をdefvarしてい
# る割に使ってない。
# (thing-at-point 'url)っていうのを使ってました。
## 使ってない変数を定義するなよなぁぁ。
## 以前変数だけみてだまされました :-P
Meadowでは、shirai at example.comをクリックすると勝手に
『mailto:shirai at example.com』に整形してくれていました。
だけど、emacs20.2がぜんぜん日本語をみてくれていないので、また、
力づくで直してみました。Meadow、Mule for Win32の両方が動くと思い
ます。また、Meadowなら『ftp://anonymous@ftp.iij.ad.jp/pub』の形
式も動きます。
というか、mailto:をつけてくれるため、"(cond … (t…" のところは
Meadowでは一生評価されません。
北口さん、お後はよろしくお願いします。m(__)m
# エンバグしていませんように ^^;
--
白井秀行@人生はCut&Try!!
### abbrevとかispellが日本語が絡むとダメなのはわたしだけ?
### なんらかの設定でOKなら、このパッチはほとんど無駄です。
-------------- next part --------------
--- mew-win32.el.orig Tue Mar 31 10:13:25 1998
+++ mew-win32.el Tue Mar 31 10:42:39 1998
@@ -37,22 +37,26 @@
;; browse-url.
(defvar mew-w32-browse-url-button [mouse-2]) ; mouse button
-(setq browse-url-regexp "\\(\\([^-A-Za-z0-9!_.%]\\|^\\)[-A-Za-z0-9._!%]+@[A-Za-z0-9][-A-Za-z0-9._!]+[A-Za-z0-9]\\)\\|\\(\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]+\\)")
+(setq browse-url-regexp "\\(\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]+\\)\\|\\(\\([^-A-Za-z0-9!_.%]\\|^\\)[-A-Za-z0-9._!%]+@[A-Za-z0-9][-A-Za-z0-9._!]+[A-Za-z0-9]\\)")
(defun browse-url-or-mew (url)
(interactive)
"browse-url or mew-send."
(message "Starting browse-url... or mew-send...")
(cond
((string-match "^mailto:" url)
- (mew-send (substring url 7 nil)))
+ (progn
+ (string-match "^\\([-a-zA-Z0-9_=?#$@~`%&*+|\\/.,:]+\\)" url)
+ (mew-send (substring url 7 (match-end 0)))))
((string-match "^\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\):" 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))))
+ (progn
+ (string-match "^\\([-a-zA-Z0-9_=?#$@~`%&*+|\\/.,:]+\\)" 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 (substring url 0 (match-end 0)))))))
(t (progn
- (string-match "\\([A-Za-z0-9]\\)" url)
- (mew-send (substring url (match-beginning 1) nil))))))
+ (string-match "\\([-A-Za-z0-9!_.%!@]+\\)" url)
+ (mew-send (substring url (match-beginning 0) (match-end 0)))))))
(setq browse-url-browser-function 'browse-url-or-mew)
(add-hook 'mew-init-hook
(lambda ()
Mew-win32 メーリングリストの案内