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))
(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)))