* riece-url.el (riece-url-regexp): Accept ";".
[riece] / lisp / riece-url.el
index 9a694f5..449e27b 100644 (file)
 ;;; Commentary:
 
 ;; To use, add the following line to your ~/.riece/init.el:
-;; (add-to-list 'riece-addons 'riece-url t)
+;; (add-to-list 'riece-addons 'riece-url)
 
 ;;; Code:
 
 (require 'riece-options)
+(require 'riece-menu)                  ;riece-menu-items
 
+(autoload 'browse-url "browse-url")
 (defvar browse-url-browser-function)
 
 (defgroup riece-url nil
   "URL Browsing in IRC buffer."
-  :group 'riece-vars)
+  :group 'riece)
 
-(defcustom riece-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_=#$@~`%&*+|\\/]"
+(defcustom riece-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_=#$@~`%&*+|\\/;]"
   "Regular expression that matches URLs."
   :group 'riece-url
   :type 'regexp)
    (list (completing-read "Open URL: " (mapcar #'list riece-urls))))
   (browse-url url))
 
+(defun riece-url-create-menu (menu)
+  (mapcar (lambda (url)
+           (vector url (list 'browse-url url)))
+         riece-urls))
+           
 (defvar riece-dialogue-mode-map)
 
 (defun riece-url-requires ()
-  (if (memq 'riece-highlight riece-addons)
-      '(riece-highlight)))
+  (append (if (memq 'riece-highlight riece-addons)
+             '(riece-highlight))
+         (if (memq 'riece-menu riece-addons)
+             '(riece-menu))))
 
 (defun riece-url-insinuate ()
   (add-hook 'riece-after-insert-functions 'riece-url-scan-region)
-  (define-key riece-dialogue-mode-map "U" 'riece-command-browse-url))
+  (define-key riece-dialogue-mode-map "U" 'riece-command-browse-url)
+  (if (memq 'riece-menu riece-addons)
+      (add-hook 'riece-command-mode-hook
+               (lambda ()
+                 (easy-menu-add-item
+                  nil (list (car riece-menu-items))
+                  '("Open URL..." :filter riece-url-create-menu)))
+               t)))
 
 (provide 'riece-url)