annotate lisp/vm/make-autoloads @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 (defun member (e list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 (while (and list (not (equal e (car list))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 (setq list (cdr list)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 list )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 (defun print-autoloads ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 (let ((files (cdr (member "print-autoloads" command-line-args)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 ;; kludge for broken v19 emacs. it's supposed to accept
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 ;; t in autoloads to mean 'macro but it doesn't. this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 ;; kludge will screw people who try to byte-compile VM
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 ;; with emacs18 for emacs19.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 (macro-flag (if (string-match "^19" emacs-version) ''macro t))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 sexp function doc interactive macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 (setq expanded-files (mapcar (function expand-file-name) files))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 (while files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 (set-buffer (find-file-noselect (car expanded-files)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 (goto-char (point-min))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 (condition-case nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 (while t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 (setq sexp (read (current-buffer)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 (if (and (consp sexp) (cdr sexp)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 (or (eq (car sexp) 'defun)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 (eq (car sexp) 'defmacro)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 (if (eq (car sexp) 'defmacro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 (setq macro macro-flag)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 (setq macro nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 (setq sexp (cdr sexp)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 function (car sexp)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 sexp (cdr (cdr sexp)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (if (stringp (car sexp))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 (setq doc (car sexp)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 sexp (cdr sexp))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 (setq doc nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 (if (and (consp (car sexp))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 (eq (car (car sexp)) 'interactive))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 (setq interactive t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 (setq interactive nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 (if (string-match "\\.el$" (car files))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 (setq file (substring (car files) 0 -3))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 (setq file (car files)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 (print (list 'autoload (list 'quote function) file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 doc interactive macro)))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 (end-of-file nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 (kill-buffer (current-buffer))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 (setq files (cdr files)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 expanded-files (cdr expanded-files))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 (kill-emacs))