* riece-addon.el (riece-insinuate-addon-1): Require add-on feature.
 2005-08-27  Daiki Ueno  <ueno@unixuser.org>
 
+       * riece-history.el (riece-history-requires): New function.
+       * riece-addon.el (riece-insinuate-addon-1): Require add-on feature.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
        * riece-foolproof.el (riece-foolproof-description): Made it more
        descriptive.
 
 
   (if (get addon 'riece-addon-insinuated)
       (if verbose
          (message "Add-on %S is already insinuated" addon))
+    (require addon)
     (funcall (intern (concat (symbol-name addon) "-insinuate")))
     (put addon 'riece-addon-insinuated t)
     (if verbose
        module-description-alist
        description enabled point)
     (while pointer
-      
       (setq description (intern-soft (concat (symbol-name (car (car pointer)))
                                             "-description"))
            module-description-alist
 
 
 (require 'riece-options)
 (require 'riece-globals)
-(require 'riece-highlight)
 (require 'riece-identity)
 (require 'riece-signal)
 (require 'ring)
+(eval-when-compile (require 'riece-highlight))
 
 (defgroup riece-history nil
   "Manage history of channel shifting."
           (not (riece-identity-equal last riece-current-channel)))
       (ring-insert riece-channel-history last)))
 
+(defun riece-history-requires ()
+  (if (memq 'riece-highlight riece-addons)
+      '(riece-highlight)))
+
 (defun riece-history-insinuate ()
   (add-hook 'riece-after-switch-to-channel-functions
            'riece-history-after-switch-to-channel-functions)
 
 (require 'riece-identity)
 (require 'riece-globals)
 (require 'riece-display)
-(require 'riece-lsdb)
+(eval-when-compile (require 'riece-lsdb))
 
 (defvar riece-xface-enabled nil)