* lisp/cus-dep.el (custom-make-dependencies): Add a fallback method

for getting :group.
This commit is contained in:
Glenn Morris 2013-05-15 19:35:10 -04:00
parent f5ba00a6ca
commit 82a7c41b86
2 changed files with 26 additions and 6 deletions

View file

@ -1,8 +1,10 @@
2013-05-15 Glenn Morris <rgm@gnu.org>
* 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 <juri@jurta.org>

View file

@ -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