X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece.el;h=400404d8f6aa76b3644cac25650bef5dc4e2c4cf;hb=HEAD;hp=8f80cecb182c58a1c15f41e5861efb4c0dd02a27;hpb=b5676d7f1d800a9e416d955298b468b8112cd3f5;p=elisp%2Friece.git diff --git a/lisp/riece.el b/lisp/riece.el index 8f80cec..400404d 100644 --- a/lisp/riece.el +++ b/lisp/riece.el @@ -31,8 +31,6 @@ (require 'riece-addon) (require 'riece-signal) -(autoload 'derived-mode-class "derived") - (defvar riece-channel-list-mode-map (make-sparse-keymap)) (defvar riece-user-list-mode-map (make-sparse-keymap)) @@ -238,12 +236,21 @@ If optional argument SAFE is nil, overwrite previous definitions." (let ((files (if file (setq riece-variables-file file riece-variables-files (list file)) - riece-variables-files))) + riece-variables-files)) + (variables riece-saved-forms)) (while files (condition-case nil (load (expand-file-name (car files))) (file-error nil)) - (setq files (cdr files))))) + (setq files (cdr files))) + (while variables + (if (fboundp 'custom-reevaluate-setting) + (custom-reevaluate-setting (car variables)) + (funcall (or (get (car variables) 'custom-set) 'set-default) + (car variables) + (eval (car (or (get (car variables) 'saved-value) + (get (car variables) 'standard-value)))))) + (setq variables (cdr variables))))) (defvar print-quoted) (defvar print-escape-multibyte) @@ -259,12 +266,14 @@ If optional argument SAFE is nil, overwrite previous definitions." print-level print-length (variables riece-saved-forms)) + (insert "(custom-set-variables\n") (while variables - (prin1 `(setq ,(car variables) - ',(symbol-value (car variables))) + (insert " '") + (prin1 `(,(car variables) ',(symbol-value (car variables))) (current-buffer)) (insert "\n") - (setq variables (cdr variables))))) + (setq variables (cdr variables))) + (insert ")"))) (message (riece-mcat "Saving %s...done") riece-saved-variables-file) (setq riece-save-variables-are-dirty nil)) @@ -388,9 +397,12 @@ For a list of the generic commands type \\[riece-command-generic] ? RET. (setq riece-command-mode-syntax-table (copy-syntax-table (syntax-table))) (set-syntax-table riece-command-mode-syntax-table) - (mapcar - (lambda (c) (modify-syntax-entry c "w")) - "^[]{}'`")) + (let* ((chars "^[]{}'`") + (length (length chars)) + (index 0)) + (while (< index length) + (modify-syntax-entry (aref chars index) "w") + (setq index (1+ index))))) (run-hooks 'riece-command-mode-hook)) @@ -480,7 +492,7 @@ All normal editing commands are turned off." riece-mode-line-buffer-identification) truncate-lines t buffer-read-only t) - (make-local-hook 'riece-update-buffer-functions) + (riece-make-local-hook 'riece-update-buffer-functions) (add-hook 'riece-update-buffer-functions 'riece-update-channel-list-buffer nil t) (use-local-map riece-channel-list-mode-map) @@ -511,7 +523,7 @@ Instead, these commands are available: buffer-read-only t) (if (boundp 'transient-mark-mode) (set (make-local-variable 'transient-mark-mode) t)) - (make-local-hook 'riece-update-buffer-functions) + (riece-make-local-hook 'riece-update-buffer-functions) (add-hook 'riece-update-buffer-functions 'riece-update-user-list-buffer nil t) (use-local-map riece-user-list-mode-map)