comparison lisp/cus-edit.el @ 49556:e8de2a4807e5

(custom-unlispify-menu-entry): Use with-current-buffer. (custom-save-variables): Use dolist, simplify. Output a message if a `requests' entry looks suspicious. (custom-save-faces): Use dolist, simplify.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 01 Feb 2003 00:39:58 +0000
parents c259d8177692
children 21135e13f9cd d7ddb3e565de
comparison
equal deleted inserted replaced
49555:4d20af97e0f8 49556:e8de2a4807e5
438 ((get symbol 'custom-tag) 438 ((get symbol 'custom-tag)
439 (if no-suffix 439 (if no-suffix
440 (get symbol 'custom-tag) 440 (get symbol 'custom-tag)
441 (concat (get symbol 'custom-tag) "..."))) 441 (concat (get symbol 'custom-tag) "...")))
442 (t 442 (t
443 (save-excursion 443 (with-current-buffer (get-buffer-create " *Custom-Work*")
444 (set-buffer (get-buffer-create " *Custom-Work*"))
445 (erase-buffer) 444 (erase-buffer)
446 (princ symbol (current-buffer)) 445 (princ symbol (current-buffer))
447 (goto-char (point-min)) 446 (goto-char (point-min))
448 ;; FIXME: Boolean variables are not predicates, so they shouldn't 447 ;; FIXME: Boolean variables are not predicates, so they shouldn't
449 ;; end with `-p'. -stef 448 ;; end with `-p'. -stef
3693 (princ "(custom-set-variables 3692 (princ "(custom-set-variables
3694 ;; custom-set-variables was added by Custom. 3693 ;; custom-set-variables was added by Custom.
3695 ;; If you edit it by hand, you could mess it up, so be careful. 3694 ;; If you edit it by hand, you could mess it up, so be careful.
3696 ;; Your init file should contain only one such instance. 3695 ;; Your init file should contain only one such instance.
3697 ;; If there is more than one, they won't work right.\n") 3696 ;; If there is more than one, they won't work right.\n")
3698 (mapcar 3697 (dolist (symbol saved-list)
3699 (lambda (symbol) 3698 (let ((spec (car-safe (get symbol 'theme-value)))
3700 (let ((spec (car-safe (get symbol 'theme-value))) 3699 (value (get symbol 'saved-value))
3701 (value (get symbol 'saved-value)) 3700 (requests (get symbol 'custom-requests))
3702 (requests (get symbol 'custom-requests)) 3701 (now (not (or (custom-variable-p symbol)
3703 (now (not (or (custom-variable-p symbol) 3702 (and (not (boundp symbol))
3704 (and (not (boundp symbol)) 3703 (not (eq (get symbol 'force-value)
3705 (not (eq (get symbol 'force-value) 3704 'rogue))))))
3706 'rogue)))))) 3705 (comment (get symbol 'saved-variable-comment))
3707 (comment (get symbol 'saved-variable-comment)) 3706 sep)
3708 sep) 3707 ;; Check `requests'.
3709 (when (or (and spec 3708 (dolist (request requests)
3710 (eq (nth 0 spec) 'user) 3709 (when (and (symbolp request) (not (featurep request)))
3711 (eq (nth 1 spec) 'set)) 3710 (message "Unknown requested feature: %s" request)
3712 comment 3711 (setq requests (delq request requests))))
3713 (and (null spec) (get symbol 'saved-value))) 3712 (when (or (and spec
3714 (unless (bolp) 3713 (eq (nth 0 spec) 'user)
3715 (princ "\n")) 3714 (eq (nth 1 spec) 'set))
3716 (princ " '(") 3715 comment
3717 (prin1 symbol) 3716 (and (null spec) (get symbol 'saved-value)))
3718 (princ " ") 3717 (unless (bolp)
3719 (prin1 (car value)) 3718 (princ "\n"))
3720 (cond ((or now requests comment) 3719 (princ " '(")
3721 (princ " ") 3720 (prin1 symbol)
3722 (if now 3721 (princ " ")
3723 (princ "t") 3722 (prin1 (car value))
3724 (princ "nil")) 3723 (when (or now requests comment)
3725 (cond ((or requests comment) 3724 (princ " ")
3726 (princ " ") 3725 (prin1 now)
3727 (if requests 3726 (when (or requests comment)
3728 (prin1 requests) 3727 (princ " ")
3729 (princ "nil")) 3728 (prin1 requests)
3730 (cond (comment 3729 (when comment
3731 (princ " ") 3730 (princ " ")
3732 (prin1 comment) 3731 (prin1 comment))))
3733 (princ ")")) 3732 (princ ")"))))
3734 (t
3735 (princ ")"))))
3736 (t
3737 (princ ")"))))
3738 (t
3739 (princ ")"))))))
3740 saved-list)
3741 (if (bolp) 3733 (if (bolp)
3742 (princ " ")) 3734 (princ " "))
3743 (princ ")") 3735 (princ ")")
3744 (unless (looking-at "\n") 3736 (unless (looking-at "\n")
3745 (princ "\n"))))) 3737 (princ "\n")))))
3767 (princ "(custom-set-faces 3759 (princ "(custom-set-faces
3768 ;; custom-set-faces was added by Custom. 3760 ;; custom-set-faces was added by Custom.
3769 ;; If you edit it by hand, you could mess it up, so be careful. 3761 ;; If you edit it by hand, you could mess it up, so be careful.
3770 ;; Your init file should contain only one such instance. 3762 ;; Your init file should contain only one such instance.
3771 ;; If there is more than one, they won't work right.\n") 3763 ;; If there is more than one, they won't work right.\n")
3772 (mapcar 3764 (dolist (symbol saved-list)
3773 (lambda (symbol) 3765 (let ((spec (car-safe (get symbol 'theme-face)))
3774 (let ((theme-spec (car-safe (get symbol 'theme-face))) 3766 (value (get symbol 'saved-face))
3775 (value (get symbol 'saved-face)) 3767 (now (not (or (get symbol 'face-defface-spec)
3776 (now (not (or (get symbol 'face-defface-spec) 3768 (and (not (custom-facep symbol))
3777 (and (not (custom-facep symbol)) 3769 (not (get symbol 'force-face))))))
3778 (not (get symbol 'force-face)))))) 3770 (comment (get symbol 'saved-face-comment)))
3779 (comment (get symbol 'saved-face-comment))) 3771 (when (or (and spec
3780 (when (or (and theme-spec 3772 (eq (nth 0 spec) 'user)
3781 (eq (nth 0 theme-spec) 'user) 3773 (eq (nth 1 spec) 'set))
3782 (eq (nth 1 theme-spec) 'set)) 3774 comment
3783 comment 3775 (and (null spec) (get symbol 'saved-face)))
3784 (and (null theme-spec) (get symbol 'saved-face))) 3776 ;; Don't print default face here.
3785 ;; Don't print default face here. 3777 (unless (bolp)
3786 (unless (bolp) 3778 (princ "\n"))
3787 (princ "\n")) 3779 (princ " '(")
3788 (princ " '(") 3780 (prin1 symbol)
3789 (prin1 symbol) 3781 (princ " ")
3790 (princ " ") 3782 (prin1 value)
3791 (prin1 value) 3783 (when (or now comment)
3792 (cond ((or now comment) 3784 (princ " ")
3793 (princ " ") 3785 (prin1 now)
3794 (if now 3786 (when comment
3795 (princ "t") 3787 (princ " ")
3796 (princ "nil")) 3788 (prin1 comment)))
3797 (cond (comment 3789 (princ ")"))))
3798 (princ " ")
3799 (prin1 comment)
3800 (princ ")"))
3801 (t
3802 (princ ")"))))
3803 (t
3804 (princ ")"))))))
3805 saved-list)
3806 (if (bolp) 3790 (if (bolp)
3807 (princ " ")) 3791 (princ " "))
3808 (princ ")") 3792 (princ ")")
3809 (unless (looking-at "\n") 3793 (unless (looking-at "\n")
3810 (princ "\n"))))) 3794 (princ "\n")))))