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>
(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))
(message "Generating %s...done" generated-custom-dependencies-file))
\f
+(provide 'cus-dep)
;;; cus-dep.el ends here