Riece: Version 4.0.0 released.
[elisp/riece.git] / lisp / riece-url.el
index 6a0035a..1c2f4dd 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)
@@ -60,10 +60,8 @@ This maps 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")
 
@@ -123,23 +121,31 @@ This maps 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))
+   '("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))
+   "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)