Ignore some files.
[riece] / lisp / riece-url.el
index 8fce9f2..ec0ffe0 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-url.el --- URL collector add-on
+;;; riece-url.el --- collect URL in IRC buffers
 ;; Copyright (C) 1998-2003 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
-;; To use, add the following line to your ~/.riece/init.el:
-;; (add-to-list 'riece-addons 'riece-url)
+;; NOTE: This is an add-on module for Riece.
 
 ;;; Code:
 
 (require 'riece-options)
 (require 'riece-menu)                  ;riece-menu-items
+(require 'easymenu)
 
 (autoload 'browse-url "browse-url")
 (defvar browse-url-browser-function)
 
 (defgroup riece-url nil
   "URL Browsing in IRC buffer."
+  :prefix "riece-"
   :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_=#$@~`%&*+|\\/;]"
@@ -51,7 +52,7 @@ For example:
         '((\"\\\\bBug#\\\\([0-9]+\\\\)\\\\b\" .
            \"http://bugs.debian.org/\\\\1\")))
 
-This will map a string \"Bug#12345\" to a URL
+This maps a string \"Bug#12345\" to a URL
 \"http://bugs.debian.org/12345\"."
   :type 'alist
   :group 'riece-url)
@@ -59,10 +60,8 @@ This will map a string \"Bug#12345\" to a URL
 (defvar riece-urls nil
   "A list of URL which appears in Riece buffers.")
 
-(defvar riece-url-enabled nil)
-
 (defconst riece-url-description
-  "Collect URL in IRC buffers")
+  "Collect URL in IRC buffers.")
 
 (autoload 'widget-convert-button "wid-edit")
 
@@ -106,7 +105,8 @@ This will map a string \"Bug#12345\" to a URL
 
 (defun riece-command-browse-url (&optional url)
   (interactive
-   (list (completing-read "Open URL: " (mapcar #'list riece-urls))))
+   (list (completing-read (riece-mcat "Open URL: ")
+                         (mapcar #'list riece-urls))))
   (browse-url url))
 
 (defun riece-url-create-menu (menu)
@@ -122,23 +122,36 @@ This will map a string \"Bug#12345\" to a URL
          (if (memq 'riece-menu riece-addons)
              '(riece-menu))))
 
+(defun riece-url-command-mode-hook ()
+  (easy-menu-add-item
+   nil (list (car riece-menu-items))
+   (list (if (featurep 'xemacs)
+            "Open URL..."
+          (riece-mcat "Open URL..."))
+        :filter 'riece-url-create-menu)))
+
 (defun riece-url-insinuate ()
   (add-hook 'riece-after-insert-functions 'riece-url-scan-region)
   (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)))
+               'riece-url-command-mode-hook
                t)))
 
+(defun riece-url-uninstall ()
+  (easy-menu-remove-item
+   nil (list (car riece-menu-items))
+   (if (featurep 'xemacs)
+       "Open URL..."
+     (riece-mcat "Open URL...")))
+  (remove-hook 'riece-after-insert-functions 'riece-url-scan-region)
+  (remove-hook 'riece-command-mode-hook
+              'riece-url-command-mode-hook))
+
 (defun riece-url-enable ()
-  (define-key riece-dialogue-mode-map "U" 'riece-command-browse-url)
-  (setq riece-url-enabled t))
+  (define-key riece-dialogue-mode-map "U" 'riece-command-browse-url))
 
 (defun riece-url-disable ()
-  (define-key riece-dialogue-mode-map "U" nil)
-  (setq riece-url-enabled nil))
+  (define-key riece-dialogue-mode-map "U" nil))
 
 (provide 'riece-url)