aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2013-05-15 19:35:10 -0400
committerGlenn Morris2013-05-15 19:35:10 -0400
commit82a7c41b8606cd9d27a1eb458f14fc3d62e0b416 (patch)
tree06452ab130ba5019995959cf639bdd061b7875c8
parentf5ba00a6cad3b8ab8bd94e3ba566f3608f1dc02e (diff)
downloademacs-82a7c41b8606cd9d27a1eb458f14fc3d62e0b416.tar.gz
emacs-82a7c41b8606cd9d27a1eb458f14fc3d62e0b416.zip
* lisp/cus-dep.el (custom-make-dependencies): Add a fallback method
for getting :group.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/cus-dep.el28
2 files changed, 26 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c14a81b9bb0..048b9586923 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,8 +1,10 @@
12013-05-15 Glenn Morris <rgm@gnu.org> 12013-05-15 Glenn Morris <rgm@gnu.org>
2 2
3 * cus-dep.el (custom-make-dependencies): Ignore dotfiles (dir-locals). 3 * cus-dep.el: Provide a feature.
4 (custom-make-dependencies): Ignore dotfiles (dir-locals).
4 Don't mistakenly ignore files whose basenames match a basename 5 Don't mistakenly ignore files whose basenames match a basename
5 from preloaded-file-list (eg cedet/ede/simple.el). 6 from preloaded-file-list (eg cedet/ede/simple.el).
7 Add a fallback method for getting :group.
6 8
72013-05-15 Juri Linkov <juri@jurta.org> 92013-05-15 Juri Linkov <juri@jurta.org>
8 10
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"
89 (while (re-search-forward 89 (while (re-search-forward
90 "^(def\\(custom\\|face\\|group\\)" nil t) 90 "^(def\\(custom\\|face\\|group\\)" nil t)
91 (beginning-of-line) 91 (beginning-of-line)
92 (let ((expr (read (current-buffer)))) 92 (let ((type (match-string 1))
93 (expr (read (current-buffer))))
93 (condition-case nil 94 (condition-case nil
94 (let ((custom-dont-initialize t)) 95 (let ((custom-dont-initialize t))
95 ;; Why do we need to eval just for the name? 96 ;; Eval to get the 'custom-group, -tag,
96 (eval expr) 97 ;; -version, group-documentation etc properties.
97 (put (nth 1 expr) 'custom-where name)) 98 (put (nth 1 expr) 'custom-where name)
98 (error nil)))) 99 (eval expr))
100 ;; Eval failed for some reason. Eg maybe the
101 ;; defcustom uses something defined earlier
102 ;; in the file (we haven't loaded the file).
103 ;; In most cases, we can still get the :group.
104 (error
105 (ignore-errors
106 (let ((group (cadr (memq :group expr))))
107 (and group
108 (eq (car group) 'quote)
109 (custom-add-to-group
110 (cadr group)
111 (nth 1 expr)
112 (intern (format "custom-%s"
113 (if (equal type "custom")
114 "variable"
115 type)))))))))))
99 (error nil))))))))) 116 (error nil)))))))))
100 (message "Generating %s..." generated-custom-dependencies-file) 117 (message "Generating %s..." generated-custom-dependencies-file)
101 (set-buffer (find-file-noselect generated-custom-dependencies-file)) 118 (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"
185 (message "Generating %s...done" generated-custom-dependencies-file)) 202 (message "Generating %s...done" generated-custom-dependencies-file))
186 203
187 204
205(provide 'cus-dep)
188 206
189;;; cus-dep.el ends here 207;;; cus-dep.el ends here