Fixed a typo.
[riece] / lisp / riece-addon.el
index 4c474c7..9dd1947 100644 (file)
          riece-addon-dependencies
          (riece-resolve-addons
           (cons addon (mapcar #'car riece-addon-dependencies)))))
-  (let ((pointer riece-addon-dependencies))
+  (let ((pointer riece-addon-dependencies)
+       addons)
     (while pointer
       (unless (get (car (car pointer)) 'riece-addon-insinuated)
-       (riece-insinuate-addon-1 (car (car pointer)) verbose))
+       (setq addons (cons (car (car pointer)) addons)))
       (if (eq (car (car pointer)) addon)
          (setq pointer nil)
-       (setq pointer (cdr pointer))))))
+       (setq pointer (cdr pointer))))
+    (setq addons (nreverse addons))
+    (if (and (> (length addons) 1)
+            (eq verbose 'ask)
+            (not (y-or-n-p (format "%s will be insinuated.  Continue?"
+                                   (mapconcat #'symbol-name addons ", ")))))
+       (error "Insinuate operation was cancelled"))
+    (while addons
+      (riece-insinuate-addon-1 (car addons) verbose)
+      (setq addons (cdr addons)))))
 
 (defun riece-uninstall-addon (addon &optional verbose)
   (if (not (get addon 'riece-addon-insinuated))
@@ -458,7 +468,7 @@ Useful keys:
                          (lambda (pointer)
                            (not (get (car pointer) 'riece-addon-insinuated)))
                          t)))))
-  (riece-insinuate-addon addon t)
+  (riece-insinuate-addon addon 'ask)
   (when (eq major-mode 'riece-addon-list-mode)
     (riece-command-list-addons)
     (riece-addon-list-set-point addon)))