[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/custom.el
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/custom.el |
Date: |
Fri, 19 Apr 2002 03:42:31 -0400 |
Index: emacs/lisp/custom.el
diff -c emacs/lisp/custom.el:1.50 emacs/lisp/custom.el:1.51
*** emacs/lisp/custom.el:1.50 Sat Jan 5 13:56:56 2002
--- emacs/lisp/custom.el Fri Apr 19 03:42:31 2002
***************
*** 549,554 ****
--- 549,621 ----
(set variable value))
(set-default variable value)))
+ (defun custom-quote (sexp)
+ "Quote SEXP iff it is not self quoting."
+ (if (or (memq sexp '(t nil))
+ (keywordp sexp)
+ (and (listp sexp)
+ (memq (car sexp) '(lambda)))
+ (stringp sexp)
+ (numberp sexp)
+ (vectorp sexp)
+ ;;; (and (fboundp 'characterp)
+ ;;; (characterp sexp))
+ )
+ sexp
+ (list 'quote sexp)))
+
+ (defun customize-mark-to-save (symbol)
+ "Mark SYMBOL for later saving.
+
+ If the default value of SYMBOL is different from the standard value,
+ set the `saved-value' property to a list whose car evaluates to the
+ default value. Otherwise, set it til nil.
+
+ To actually save the value, call `custom-save-all'.
+
+ Return non-nil iff the `saved-value' property actually changed."
+ (let* ((get (or (get symbol 'custom-get) 'default-value))
+ (value (funcall get symbol))
+ (saved (get symbol 'saved-value))
+ (standard (get symbol 'standard-value))
+ (comment (get symbol 'customized-variable-comment)))
+ ;; Save default value iff different from standard value.
+ (if (or (null standard)
+ (not (equal value (condition-case nil
+ (eval (car standard))
+ (error nil)))))
+ (put symbol 'saved-value (list (custom-quote value)))
+ (put symbol 'saved-value nil))
+ ;; Clear customized information (set, but not saved).
+ (put symbol 'customized-value nil)
+ ;; Save any comment that might have been set.
+ (when comment
+ (put symbol 'saved-variable-comment comment))
+ (not (equal saved (get symbol 'saved-value)))))
+
+ (defun customize-mark-as-set (symbol)
+ "Mark current value of SYMBOL as being set from customize.
+
+ If the default value of SYMBOL is different from the saved value if any,
+ or else if it is different from the standard value, set the
+ `customized-value' property to a list whose car evaluates to the
+ default value. Otherwise, set it til nil.
+
+ Return non-nil iff the `customized-value' property actually changed."
+ (let* ((get (or (get symbol 'custom-get) 'default-value))
+ (value (funcall get symbol))
+ (customized (get symbol 'customized-value))
+ (old (or (get symbol 'saved-value) (get symbol 'standard-value))))
+ ;; Mark default value as set iff different from old value.
+ (if (or (null old)
+ (not (equal value (condition-case nil
+ (eval (car old))
+ (error nil)))))
+ (put symbol 'customized-value (list (custom-quote value)))
+ (put symbol 'customized-value nil))
+ ;; Changed?
+ (not (equal customized (get symbol 'customized-value)))))
+
;;; The End.
;; Process the defcustoms for variables loaded before this file.
- [Emacs-diffs] Changes to emacs/lisp/custom.el,
Miles Bader <=