From: Glenn Morris Date: Wed, 15 May 2013 23:35:10 +0000 (-0400) Subject: * lisp/cus-dep.el (custom-make-dependencies): Add a fallback method X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~2026^2~229^2~72 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=82a7c41b8606cd9d27a1eb458f14fc3d62e0b416;p=emacs.git * lisp/cus-dep.el (custom-make-dependencies): Add a fallback method for getting :group. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c14a81b9bb0..048b9586923 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,8 +1,10 @@ 2013-05-15 Glenn Morris - * cus-dep.el (custom-make-dependencies): Ignore dotfiles (dir-locals). + * cus-dep.el: Provide a feature. + (custom-make-dependencies): Ignore dotfiles (dir-locals). Don't mistakenly ignore files whose basenames match a basename from preloaded-file-list (eg cedet/ede/simple.el). + Add a fallback method for getting :group. 2013-05-15 Juri Linkov diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index d31568bb523..4c8a9773c3a 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -89,13 +89,30 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS" (while (re-search-forward "^(def\\(custom\\|face\\|group\\)" nil t) (beginning-of-line) - (let ((expr (read (current-buffer)))) + (let ((type (match-string 1)) + (expr (read (current-buffer)))) (condition-case nil (let ((custom-dont-initialize t)) - ;; Why do we need to eval just for the name? - (eval expr) - (put (nth 1 expr) 'custom-where name)) - (error nil)))) + ;; Eval to get the 'custom-group, -tag, + ;; -version, group-documentation etc properties. + (put (nth 1 expr) 'custom-where name) + (eval expr)) + ;; Eval failed for some reason. Eg maybe the + ;; defcustom uses something defined earlier + ;; in the file (we haven't loaded the file). + ;; In most cases, we can still get the :group. + (error + (ignore-errors + (let ((group (cadr (memq :group expr)))) + (and group + (eq (car group) 'quote) + (custom-add-to-group + (cadr group) + (nth 1 expr) + (intern (format "custom-%s" + (if (equal type "custom") + "variable" + type))))))))))) (error nil))))))))) (message "Generating %s..." generated-custom-dependencies-file) (set-buffer (find-file-noselect generated-custom-dependencies-file)) @@ -185,5 +202,6 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS" (message "Generating %s...done" generated-custom-dependencies-file)) +(provide 'cus-dep) ;;; cus-dep.el ends here