;; 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.
;;; Code:
:type '(repeat (list string))
:group 'riece-addon-list)
+(eval-when-compile
+ (autoload 'riece-command-save-variables "riece-commands"))
+
(defvar riece-addon-list-mode-map
(let ((keymap (make-sparse-keymap)))
(define-key keymap "+" 'riece-command-enable-addon)
(define-key keymap " " 'scroll-up)
(define-key keymap [delete] 'scroll-down)
(define-key keymap "q" 'bury-buffer)
+ (define-key keymap "s" 'riece-command-save-variables)
keymap))
(defun riece-load-and-build-addon-dependencies (addons)
(if verbose
(message "Add-on %S is already enabled" addon))
(let ((enable (intern-soft (concat (symbol-name addon) "-enable"))))
- (if (or (null enable)
- (not (fboundp enable)))
+ (if (and enable
+ (fboundp enable))
(funcall enable))
(put addon 'riece-addon-enabled t)
(if verbose
(if verbose
(message "Add-on %S is already disabled" addon))
(let ((disable (intern-soft (concat (symbol-name addon) "-disable"))))
- (if (or (null disable)
- (not (fboundp disable)))
+ (if (and disable
+ (fboundp disable))
(funcall disable))
(put addon 'riece-addon-enabled nil)
(if verbose
buffer-read-only
(pointer riece-addon-dependencies)
module-description-alist
- description point)
+ description point longest)
(while pointer
(setq description (intern-soft (concat (symbol-name (car (car pointer)))
"-description"))
(setq pointer (cdr pointer)))
(erase-buffer)
(riece-kill-all-overlays)
+ (setq pointer module-description-alist
+ longest "")
+ (while pointer
+ (if (> (length (symbol-name (car (car pointer))))
+ (length longest))
+ (setq longest (symbol-name (car (car pointer)))))
+ (setq pointer (cdr pointer)))
(setq pointer (sort module-description-alist
(lambda (entry1 entry2)
(string-lessp (symbol-name (car entry1))
(symbol-name (car entry2))))))
(while pointer
(setq point (point))
- (insert (format "%c %-15S %s\n"
+ (insert (format (format "%%c %%-%dS %%s\n" (length longest))
(if (not (featurep (car (car pointer))))
?
(if (not (get (car (car pointer))
`\\[riece-command-insinuate-addon]' to insinuate the current add-on.
`\\[riece-command-uninstall-addon]' to uninstall the current add-on.
`\\[riece-command-unload-addon]' to unload the current add-on.
+ `\\[riece-command-save-variables]' to save the current setting.
"))
(goto-char (point-min))
(pop-to-buffer (current-buffer))
(and enabled
(null (symbol-value enabled)))))
t)))))
+ (riece-command-insinuate-addon addon)
(riece-enable-addon addon t)
(when (eq major-mode 'riece-addon-list-mode)
(riece-command-list-addons)