X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fliece-url.el;h=d7d3abee30506585e69be57d0a57ce61e018db38;hb=387802f699feb002e6877212dfe7176da00584e6;hp=11568c6b57cf548c6d38b83c8d221edd86a649fa;hpb=79bd78bd701bbc2d9b449d40d451c58987e4a607;p=elisp%2Fliece.git diff --git a/lisp/liece-url.el b/lisp/liece-url.el index 11568c6..d7d3abe 100644 --- a/lisp/liece-url.el +++ b/lisp/liece-url.el @@ -32,10 +32,9 @@ (eval-when-compile (require 'liece-inlines) (require 'liece-intl) - (require 'browse-url) (require 'liece-menu)) -(defvar-maybe browse-url-browser-function nil) +(defvar browse-url-browser-function) (defgroup liece-url nil "URL Browsing in IRC buffer." @@ -46,42 +45,8 @@ :group 'liece-url :type 'regexp) -(defcustom liece-url-mail-regexp "\\bmailto:\\([-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]\\)" - "Regular expression that matches mailto:." - :group 'liece-url - :type 'regexp) - -(defcustom liece-url-browser-name - (let (url-func url-prog len) - (if (featurep 'browse-url) - (and (setq url-func browse-url-browser-function) - (setq url-prog (symbol-name url-func)) - (stringp url-prog) - (setq len (length url-prog)) - (setq url-prog (substring url-prog 11 len))) - "netscape")) - "Default URL Browser Name. -netscape Netscape 1.1b1 -mosaic XMosaic <= 2.4 -cci XMosaic 2.5 -w3 w3 0 -iximosaic IXI Mosaic ? -lynx-* Lynx 0 -grail Grail 0.3b1" - :type 'string - :group 'liece-url) - -(defvar liece-url-add-hook nil) - -(defmacro liece-url-prepare-browser-function () - (if (featurep 'browse-url) - '(intern (concat "browse-url-" liece-url-browser-name)) - '(intern (concat "liece-url-browser-" liece-url-browser-name)))) - -(defcustom liece-url-browser-function - (liece-url-prepare-browser-function) +(defcustom liece-url-browser-function browse-url-browser-function "Default URL Browser." - :type 'function :group 'liece-url) (defcustom liece-url-alist nil @@ -95,38 +60,32 @@ grail Grail 0.3b1" :action 'liece-url-link-action) (defun liece-url-link-action (widget &optional event) - (let ((func (liece-url-prepare-browser-function))) - (if (fboundp func) - (setq liece-url-browser-function func) - (setq func liece-url-browser-function)) - (funcall func (widget-value widget)))) + (let ((browse-url-browser-function liece-url-browser-function)) + (browse-url (widget-value widget)))) + +(defvar liece-add-url-functions nil) (defun liece-url-add-buttons (start end) (save-excursion (goto-char start) (while (re-search-forward liece-url-regexp end t) - (let* ((url-start (match-beginning 0)) - (url-end (match-end 0)) - (url (buffer-substring url-start url-end))) + (let ((url (match-string 0))) (if liece-highlight-mode - (liece-widget-convert-button 'url-link url-start url-end url)) + (liece-widget-convert-button + 'url-link (match-beginning 0)(match-end 0) url)) (unless (assoc url liece-url-alist) (push (list url) liece-url-alist) - (run-hook-with-args 'liece-url-add-hook url)))))) + (run-hook-with-args 'liece-add-url-functions url)))))) (defun liece-command-browse-url (&optional url) (interactive (let (url) (if (and current-prefix-arg (eq current-prefix-arg '-)) (setq url (caar liece-url-alist)) - (setq url (liece-minibuffer-completing-default-read - (_ "Open URL:") liece-url-alist))) + (setq url (completing-read (_ "Open URL:") liece-url-alist))) (list url))) - (let ((func (liece-url-prepare-browser-function))) - (if (fboundp func) - (setq liece-url-browser-function func) - (setq func liece-url-browser-function)) - (funcall func url))) + (let ((browse-url-browser-function liece-url-browser-function)) + (browse-url url))) (defun url-irc-liece (host port channel user password) (let ((liece-server