diff options
| author | Glenn Morris | 2013-05-15 19:35:10 -0400 |
|---|---|---|
| committer | Glenn Morris | 2013-05-15 19:35:10 -0400 |
| commit | 82a7c41b8606cd9d27a1eb458f14fc3d62e0b416 (patch) | |
| tree | 06452ab130ba5019995959cf639bdd061b7875c8 | |
| parent | f5ba00a6cad3b8ab8bd94e3ba566f3608f1dc02e (diff) | |
| download | emacs-82a7c41b8606cd9d27a1eb458f14fc3d62e0b416.tar.gz emacs-82a7c41b8606cd9d27a1eb458f14fc3d62e0b416.zip | |
* lisp/cus-dep.el (custom-make-dependencies): Add a fallback method
for getting :group.
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/cus-dep.el | 28 |
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 @@ | |||
| 1 | 2013-05-15 Glenn Morris <rgm@gnu.org> | 1 | 2013-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 | ||
| 7 | 2013-05-15 Juri Linkov <juri@jurta.org> | 9 | 2013-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 |