Fixed error message.
[riece] / lisp / riece-addon.el
index a46fcb3..089cdf1 100644 (file)
@@ -55,7 +55,7 @@
   '((((class color) (background dark))
      (:foreground "PaleTurquoise" :italic t))
     (t
-     (:italic t)))
+     ()))
   "Face used for displaying the disabled addon."
   :group 'riece-addon-list-faces)
 (defvar riece-addon-list-disabled-face 'riece-addon-list-disabled-face)
@@ -71,7 +71,7 @@
 
 (defface riece-addon-list-uninstalled-face
   '((t
-     (:foreground "red")))
+     (:italic t)))
   "Face used for displaying the uninstalled addon."
   :group 'riece-addon-list-faces)
 (defvar riece-addon-list-uninstalled-face 'riece-addon-list-uninstalled-face)
 (defun riece-insinuate-addon (addon &optional verbose)
   (unless (assq addon riece-addon-dependencies)
     (setq riece-addons (cons addon riece-addons)
-         riece-addon-dependencies (riece-resolve-addons riece-addons)))
+         riece-addon-dependencies (riece-resolve-addons
+                                   (copy-sequence riece-addons))))
   (if (get addon 'riece-addon-insinuated)
       (if verbose
          (message "Add-on %S is already insinuated" addon))
     (funcall (intern (concat (symbol-name addon) "-insinuate")))
     (put addon 'riece-addon-insinuated t)
     (if verbose
-       (message "Add-on %S is insinuated" addon))))
+       (message "Add-on %S is insinuated" addon))
+    (unless (get addon 'riece-addon-default-disabled)
+      (riece-enable-addon addon t))))
 
 (defun riece-uninstall-addon (addon &optional verbose)
   (if (not (get addon 'riece-addon-insinuated))
          (enabled (intern-soft (concat (symbol-name addon) "-enabled"))))
       (if entry
          (if (cdr entry)
-             (if (= (length (cdr entry)) 1)
-                 (error "%S depends %S" (car (cdr entry)) addon)
-               (error "%s depends %S" (mapconcat #'identity (cdr entry) ",")
-                      addon))
+             (error "Dependency problem: %S <- %S" addon (cdr entry))
            (if (and enabled
                     (symbol-value enabled))
                (riece-disable-addon addon verbose))
                         #'ignore))
            (setq riece-addon-dependencies
                  (delq entry riece-addon-dependencies))
-           (put addon 'riece-addon-insinuated nil)
-           (setq riece-addons (delq addon riece-addons))))
+           (remprop addon 'riece-addon-insinuated)
+           (setq riece-addons (delq addon riece-addons)
+                 riece-addon-dependencies (riece-resolve-addons
+                                           (copy-sequence riece-addons)))))
       (if verbose
          (message "Add-on %S is uninstalled" addon)))))
 
 (defun riece-enable-addon (addon &optional verbose)
+  (unless (get addon 'riece-addon-insinuated)
+    (error "Add-on %S is not insinuated" addon))
   (let ((enabled (intern-soft (concat (symbol-name addon) "-enabled"))))
     (if (null enabled)
        (if verbose
            (message "Add-on %S enabled" addon))))))
 
 (defun riece-disable-addon (addon &optional verbose)
+  (unless (get addon 'riece-addon-insinuated)
+    (error "Add-on %S is not insinuated" addon))
   (let ((enabled (intern-soft (concat (symbol-name addon) "-enabled"))))
     (if (null enabled)
        (if verbose