Mercurial > emacs
annotate lisp/cus-dep.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | ad057569785d |
children | 88b4e08f3ac1 |
rev | line source |
---|---|
17393 | 1 ;;; cus-dep.el --- Find customization dependencies. |
2 ;; | |
3 ;; Copyright (C) 1997 Free Software Foundation, Inc. | |
4 ;; | |
5 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | |
6 ;; Keywords: internal | |
7 | |
17520 | 8 ;; This file is part of GNU Emacs. |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
24 | |
17393 | 25 ;;; Code: |
26 | |
27 (require 'cl) | |
17685
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
28 (require 'widget) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
29 (require 'cus-face) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
30 (require 'autoload) |
17393 | 31 |
32 (defun custom-make-dependencies () | |
33 "Batch function to extract custom dependencies from .el files. | |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
34 Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS" |
17393 | 35 (let ((enable-local-eval nil) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
36 (all-subdirs command-line-args-left) |
17685
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
37 (start-directory default-directory)) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
38 (get-buffer-create " cus-dep temp") |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
39 (set-buffer " cus-dep temp") |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
40 (while all-subdirs |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
41 (message "Directory %s" (car all-subdirs)) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
42 (let ((files (directory-files (car all-subdirs) nil "\\`[^=].*\\.el\\'")) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
43 (default-directory default-directory) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
44 file |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
45 is-autoloaded) |
17685
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
46 (cd (car all-subdirs)) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
47 (while files |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
48 (setq file (car files) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
49 files (cdr files)) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
50 (when (file-exists-p file) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
51 (erase-buffer) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
52 (insert-file-contents file) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
53 (goto-char (point-min)) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
54 (string-match "\\`\\(.*\\)\\.el\\'" file) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
55 (let ((name (file-name-nondirectory (match-string 1 file)))) |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
56 (condition-case nil |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
57 (while (re-search-forward "^(defcustom\\|^(defface\\|^(defgroup" |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
58 nil t) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
59 (setq is-autoloaded nil) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
60 (beginning-of-line) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
61 (save-excursion |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
62 (forward-line -1) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
63 (if (looking-at generate-autoload-cookie) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
64 (setq is-autoloaded t))) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
65 (let ((expr (read (current-buffer)))) |
21755
44c9237d9e52
(custom-make-dependencies): Don't give up
Richard M. Stallman <rms@gnu.org>
parents:
19526
diff
changeset
|
66 (condition-case nil |
44c9237d9e52
(custom-make-dependencies): Don't give up
Richard M. Stallman <rms@gnu.org>
parents:
19526
diff
changeset
|
67 (progn |
44c9237d9e52
(custom-make-dependencies): Don't give up
Richard M. Stallman <rms@gnu.org>
parents:
19526
diff
changeset
|
68 (eval expr) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
69 (put (nth 1 expr) 'custom-autoloaded is-autoloaded) |
21755
44c9237d9e52
(custom-make-dependencies): Don't give up
Richard M. Stallman <rms@gnu.org>
parents:
19526
diff
changeset
|
70 (put (nth 1 expr) 'custom-where name)) |
44c9237d9e52
(custom-make-dependencies): Don't give up
Richard M. Stallman <rms@gnu.org>
parents:
19526
diff
changeset
|
71 (error nil)))) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
72 (error nil))))) |
17685
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
73 (setq all-subdirs (cdr all-subdirs))))) |
17393 | 74 (message "Generating cus-load.el...") |
75 (find-file "cus-load.el") | |
76 (erase-buffer) | |
77 (insert "\ | |
78 ;;; cus-load.el --- automatically extracted custom dependencies | |
79 ;; | |
80 ;;; Code: | |
17395 | 81 |
17393 | 82 ") |
83 (mapatoms (lambda (symbol) | |
84 (let ((members (get symbol 'custom-group)) | |
85 item where found) | |
86 (when members | |
87 (while members | |
88 (setq item (car (car members)) | |
89 members (cdr members) | |
90 where (get item 'custom-where)) | |
91 (unless (or (null where) | |
92 (member where found)) | |
93 (if found | |
94 (insert " ") | |
95 (insert "(put '" (symbol-name symbol) | |
96 " 'custom-loads '(")) | |
17473
83503d0dc576
Fixed generation of empty dependencies lists.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17395
diff
changeset
|
97 (prin1 where (current-buffer)) |
17393 | 98 (push where found))) |
17473
83503d0dc576
Fixed generation of empty dependencies lists.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17395
diff
changeset
|
99 (when found |
83503d0dc576
Fixed generation of empty dependencies lists.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17395
diff
changeset
|
100 (insert "))\n")))))) |
17479 | 101 (insert "\ |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
102 ;;; These are for handling :version. We need to have a minimum of |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
103 ;;; information so `custom-changed-variables' could do its job. |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
104 ;;; For both groups and variables we have to set `custom-version'. |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
105 ;;; For variables we also set the `standard-value' and for groups |
23099 | 106 ;;; `group-documentation' (which is shown in the customize buffer), so |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
107 ;;; we don't have to load the file containing the group. |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
108 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
109 ;;; `custom-versions-load-alist' is an alist that has as car a version |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
110 ;;; number and as elts the files that have variables that contain that |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
111 ;;; version. These files should be loaded before showing the |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
112 ;;; customization buffer that `customize-changed-options' generates. |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
113 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
114 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
115 ;;; This macro is used so we don't modify the information about |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
116 ;;; variables and groups if it's already set. (We don't know when |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
117 ;;; cus-load.el is going to be loaded and at that time some of the |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
118 ;;; files might be loaded and some others might not). |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
119 (defmacro custom-put-if-not (symbol propname value) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
120 `(unless (get ,symbol ,propname) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
121 (put ,symbol ,propname ,value))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
122 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
123 ") |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
124 (let ((version-alist nil)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
125 (mapatoms (lambda (symbol) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
126 (let ((version (get symbol 'custom-version)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
127 where) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
128 (when version |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
129 (setq where (get symbol 'custom-where)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
130 (when (and where |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
131 ;; Don't bother to do anything if it's |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
132 ;; autoloaded because we will have all |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
133 ;; this info when emacs is running |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
134 ;; anyway. |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
135 (not (get symbol 'custom-autoloaded))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
136 (insert "(custom-put-if-not '" (symbol-name symbol) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
137 " 'custom-version ") |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
138 (prin1 version (current-buffer)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
139 (insert ")\n") |
22633
3da8188c31a3
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
22538
diff
changeset
|
140 (insert "(custom-put-if-not '" (symbol-name symbol)) |
22538
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
141 (if (get symbol 'standard-value) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
142 ;; This means it's a variable |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
143 (progn |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
144 (insert " 'standard-value t)\n") |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
145 (if (assoc version version-alist) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
146 (unless |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
147 (member where |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
148 (cdr (assoc version version-alist))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
149 (push where (cdr (assoc version version-alist)))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
150 (push (cons version (list where)) version-alist))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
151 ;; This is a group |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
152 (insert " 'group-documentation ") |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
153 (prin1 (get symbol 'group-documentation) (current-buffer)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
154 (insert ")\n"))))))) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
155 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
156 (insert "\n(defvar custom-versions-load-alist " |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
157 (if version-alist "'" "")) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
158 (prin1 version-alist (current-buffer)) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
159 (insert "\n \"For internal use by custom.\")\n")) |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
160 |
2649d061d370
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21755
diff
changeset
|
161 (insert "\ |
17479 | 162 |
163 \(provide 'cus-load) | |
164 | |
165 ;;; cus-load.el ends here\n") | |
17685
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
166 (let ((kept-new-versions 10000000)) |
3a1471ba9387
(custom-make-dependencies):
Richard M. Stallman <rms@gnu.org>
parents:
17520
diff
changeset
|
167 (save-buffer)) |
17744
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
168 (message "Generating cus-load.el...done") |
2522a70cd009
(custom-make-dependencies): Don't find the subdirs here;
Richard M. Stallman <rms@gnu.org>
parents:
17685
diff
changeset
|
169 (kill-emacs)) |
17393 | 170 |
171 ;;; cus-dep.el ends here |