X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lisp%2Fcus-dep.el;h=8a05073d80dc29c11603b51eaf44ebc35cefc738;hb=refs%2Fremotes%2Forigin%2Funlabeled-1.1.1;hp=81cb4249f1e55d7c64700335548a4c169f13b7c3;hpb=8b0299e2a613ab99d6e4dc2423e77ff93b715adc;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index 81cb424..8a05073 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -131,15 +131,21 @@ Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS" (file-name-nondirectory file)))) ;; Search for defcustom/defface/defgroup ;; expressions, and evaluate them. - (ignore-errors - (while (re-search-forward - "^(defcustom\\|^(defface\\|^(defgroup" - nil t) - (beginning-of-line) - (let ((expr (read (current-buffer)))) - (eval expr) - ;; Hash the file of the affected symbol. - (setf (gethash (nth 1 expr) hash) name))))))) + (while (re-search-forward + "^(defcustom\\|^(defface\\|^(defgroup" + nil t) + (beginning-of-line) + (let ((expr (read (current-buffer)))) + ;; We need to ignore errors here, so that + ;; defcustoms with :set don't bug out. Of + ;; course, their values will not be assigned in + ;; case of errors, but their `custom-group' + ;; properties will by that time be in place, and + ;; that's all we care about. + (ignore-errors + (eval expr)) + ;; Hash the file of the affected symbol. + (setf (gethash (nth 1 expr) hash) name)))))) (cond ((zerop (hash-table-count hash)) (princ "(No customization dependencies") @@ -167,7 +173,7 @@ Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS" (if found (insert " ") (insert "(custom-add-loads '" - (symbol-name sym) " '(")) + (prin1-to-string sym) " '(")) (prin1 where (current-buffer)) (push where found))) (when found