annotate lisp/make-docfile.el @ 5067:7d7ae8db0341

add functions `stable-union' and `stable-intersection' to do stable set operations -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-02-22 Ben Wing <ben@xemacs.org> * cl-seq.el: * cl-seq.el (stable-union): New. * cl-seq.el (stable-intersection): New. New functions to do stable set operations, i.e. preserve the order of the elements in the argument lists, and prefer LIST1 over LIST2 when ordering the combined result. The result looks as much like LIST1 as possible, followed (in the case of `stable-union') by any necessary elements from LIST2, in order. This is contrary to `union' and `intersection', which are not required to be order- preserving and are not -- they prefer LIST2 and output results in backwards order.
author Ben Wing <ben@xemacs.org>
date Mon, 22 Feb 2010 21:23:02 -0600
parents 788c38f20376
children e402e3506a53
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;;; make-docfile.el --- Cache docstrings in external file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Copyright (C) 1985, 1986, 1992-1995, 1997 Free Software Foundation, Inc.
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
4 ;; Copyright (C) 2002, 2003 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 ;; Author: Unknown
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
7 ;; Maintainer: XEmacs Development Team
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 ;; Keywords: internal
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ;; XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 ;; under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ;; any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ;; XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 ;; along with XEmacs; see the file COPYING. If not, write to the Free
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 ;; 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;;; Synched up with: Not in FSF
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 ;; This is a front-end to the make-docfile program that gathers up all the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 ;; lisp files that will be dumped with XEmacs. It would probably be best
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ;; to just move make-docfile.c completely to lisp and be done with it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 ;;; Code:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1227
diff changeset
37 ;; Help debug problems.
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1227
diff changeset
38 (setq stack-trace-on-error t
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1227
diff changeset
39 load-always-display-messages t)
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1227
diff changeset
40
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 (defvar options nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 (defvar processed nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 (defvar docfile nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 (defvar docfile-buffer nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 (defvar site-file-list nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 (defvar docfile-out-of-date nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47
3511
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2456
diff changeset
48 (defvar build-directory (expand-file-name ".." invocation-directory))
1ee424086c62 [xemacs-hg @ 2006-07-16 12:23:57 by aidan]
aidan
parents: 2456
diff changeset
49 (defvar build-lib-src (expand-file-name "lib-src" build-directory))
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
50 (defvar source-lisp (file-name-directory (expand-file-name
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
51 (nth 2 command-line-args))))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
52 (defvar source-src (expand-file-name "../src" source-lisp))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
53
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
54 (defun message (fmt &rest args)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
55 (princ (apply #'format fmt args))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
56 (terpri))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
57
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 ;; Gobble up the stuff we don't wish to pass on.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 (setq command-line-args (cdr (cdr (cdr (cdr command-line-args)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 ;; First gather up the command line options.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 (let (done)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 (while (and (null done) command-line-args)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 (let ((arg (car command-line-args)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 (cond ((or (string-equal arg "-o") ; Specify DOC file name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 (string-equal arg "-a") ; Append to DOC file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 (string-equal arg "-d")) ; Set working directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 (if (string-equal arg "-o")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 (setq docfile (expand-file-name (car (cdr command-line-args)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 (setq options (cons arg options))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 (setq options (cons (expand-file-name (car (cdr command-line-args))) options)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 ((string-equal arg "-i") ; Set site files to scan
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 (setq site-file-list (car (cdr command-line-args))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 (t (setq done t)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 (if (null done)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 (setq command-line-args (cdr (cdr command-line-args)))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 (setq options (nreverse options))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
79 ;; (message (concat "Options: " (prin1-to-string options)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
80
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 ;; Next process the list of C files.
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
82 (defun process-args (args)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
83 (while args
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
84 (let ((arg (car args)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
85 ;; When called from xemacs.mak, we need to do some frobbing on the
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
86 ;; args given to us -- remove NEEDTODUMP and make-docfile.exe,
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
87 ;; convert .obj files into .c files in the source directory,
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
88 ;; handle response files (beginning with @, specifying arguments),
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
89 ;; due to line-length limitations in the shell.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
90 (if (string-match "^@" arg)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
91 ;; MS Windows response file
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
92 ;; no generate-new-buffer so use its implementation.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
93 (let ((buf (get-buffer-create (generate-new-buffer-name "foo"))))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
94 (set-buffer buf)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
95 (insert-file-contents-internal (substring arg 1))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
96 ;; now majorly grind up the response file.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
97 ;; backslashes get doubled, quotes around strings,
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
98 ;; get rid of pesky CR's and NL's, and put parens around
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
99 ;; the whole thing so we have a valid list of strings.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
100 (goto-char (point-max))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
101 (insert "\")")
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
102 (goto-char (point-min))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
103 (insert "(\"")
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
104 (while (search-forward "\\" nil t)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
105 (replace-match "\\\\" nil t))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
106 (goto-char (point-min))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
107 (while (search-forward "\n" nil t)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
108 (replace-match "" nil t))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
109 (goto-char (point-min))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
110 (while (search-forward "\r" nil t)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
111 (replace-match "" nil t))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
112 (goto-char (point-min))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
113 (while (search-forward " " nil t)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
114 (replace-match "\" \"" nil t))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
115 (goto-char (point-min))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
116 (process-args (read buf)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
117 ;; remove NEEDTODUMP and make-docfile.exe, convert .obj files into
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
118 ;; .c files in the source directory.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
119 (when (and (not (string-match "\\(NEEDTODUMP\\|\\.exe$\\)" arg))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
120 (not (member arg processed)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
121 (when (string-match "\\(.*\\)\\.obj$" arg)
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
122 (setq arg (expand-file-name
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
123 (concat
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
124 (file-name-nondirectory
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
125 ;; no match-string so use its implementation.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
126 (substring arg (match-beginning 1)
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
127 (match-end 1)))
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
128 ".c")
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
129 source-src)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 (if (and (null docfile-out-of-date)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 (file-newer-than-file-p arg docfile))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 (setq docfile-out-of-date t))
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
133 (setq processed (cons arg processed))))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
134 (setq args (cdr args)))))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
135
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
136 ;; Then process the list of Lisp files.
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
137 (process-args command-line-args)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
139 (setq load-path (list source-lisp))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 ;; Then process the autoloads
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 (setq autoload-file-name "auto-autoloads.elc")
1333
1b0339b048ce [xemacs-hg @ 2003-03-02 09:38:37 by ben]
ben
parents: 1330
diff changeset
143 (defvar custom-declare-variable-list nil) ; unclean
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 (load "find-paths.el")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 (load "packages.el")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 (load "setup-paths.el")
1261
465bd3c7d932 [xemacs-hg @ 2003-02-06 06:35:47 by ben]
ben
parents: 1227
diff changeset
147 (load "raw-process.el")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148
4547
ab9e8f0fb295 Check absolute source file names against DOC with #'file-newer-than-file-p.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4539
diff changeset
149 (let (preloaded-file-list arg0 arg package-preloaded-file-list absolute)
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
150 (load (expand-file-name "dumped-lisp.el" source-lisp))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151
4539
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
152 (setq package-preloaded-file-list
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
153 (packages-collect-package-dumped-lisps late-package-load-path)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
154 preloaded-file-list
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
155 (append package-preloaded-file-list
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
156 preloaded-file-list
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
157 packages-hardcoded-lisp)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
158
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
159 processed (cons "-d" processed)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
160 processed (cons source-lisp processed)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
161 ;; Include loadup.el, which is never in preloaded-file-list:
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
162 processed (cons "loadup.el" processed))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 (while preloaded-file-list
4539
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
165 (setq arg0 (packages-add-suffix (car preloaded-file-list))
4547
ab9e8f0fb295 Check absolute source file names against DOC with #'file-newer-than-file-p.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4539
diff changeset
166 arg (locate-library arg0)
ab9e8f0fb295 Check absolute source file names against DOC with #'file-newer-than-file-p.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4539
diff changeset
167 absolute arg)
4539
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
168 (if (null arg)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
169 (progn
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
170 (message "Error: dumped file %s does not exist" arg0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 ;; Uncomment in case of difficulties
4539
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
172 ;(message "late-package-hierarchies: %S"
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
173 ; late-package-hierarchies)
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
174 ;(message "guessed-roots: %S" (paths-find-emacs-roots
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
175 ; invocation-directory
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
176 ; invocation-name
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
177 ; #'paths-emacs-root-p))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
178 ;(message "guessed-data-roots: %S" (paths-find-emacs-roots
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
179 ; invocation-directory
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
180 ; invocation-name
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
181 ; #'paths-emacs-data-root-p))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
182 )
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
183 (when (equal arg (expand-file-name arg0 source-lisp))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
184 ;; Use relative paths where possible, since this makes file lookup
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
185 ;; in an installed XEmacs easier:
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
186 (setq arg arg0))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
187 (if (null (member arg processed))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
188 (progn
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
189 (if (and (null docfile-out-of-date)
4547
ab9e8f0fb295 Check absolute source file names against DOC with #'file-newer-than-file-p.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4539
diff changeset
190 ;; We need to check the absolute path here:
ab9e8f0fb295 Check absolute source file names against DOC with #'file-newer-than-file-p.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4539
diff changeset
191 (file-newer-than-file-p absolute docfile))
4539
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
192 (setq docfile-out-of-date t))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
193 (setq processed (cons arg processed)))))
061e030e3270 Fix some bugs in load-history construction, built-in symbol file names.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3511
diff changeset
194 (setq preloaded-file-list (cdr preloaded-file-list))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 ;; Finally process the list of site-loaded files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 (if site-file-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 (let (site-load-packages)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 (load site-file-list t t)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 (while site-load-packages
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 (let ((arg (car site-load-packages)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 (if (null (member arg processed))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 (progn
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 (if (and (null docfile-out-of-date)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 (file-newer-than-file-p arg docfile))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 (setq docfile-out-of-date t))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 (setq processed (cons arg processed)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 (setq site-load-packages (cdr site-load-packages)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210 ;(let ((autoloads (packages-list-autoloads-path)))
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
211 ; ;; (message (concat "Autoloads: " (prin1-to-string autoloads)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 ; (while autoloads
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 ; (let ((arg (car autoloads)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 ; (if (null (member arg processed))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 ; (progn
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
216 ; ;; (message arg)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217 ; (if (and (null docfile-out-of-date)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 ; (file-newer-than-file-p arg docfile))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 ; (setq docfile-out-of-date t))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 ; (setq processed (cons arg processed))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 ; (setq autoloads (cdr autoloads)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 ;; Now fire up make-docfile and we're done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 (setq processed (nreverse processed))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
227 (terpri)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
228
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
229 ;(message (prin1-to-string (append options processed)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
231 (when docfile-out-of-date
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
232 (condition-case nil
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
233 (delete-file docfile)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
234 (error nil))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
235 (message "Spawning make-docfile ...")
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
236 ;; (message (prin1-to-string (append options processed)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
237
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
238 (setq exec-path (list build-lib-src))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
240 ;; (locate-file-clear-hashing nil)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
241 (if (memq system-type '(berkeley-unix next-mach))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
242 ;; Suboptimal, but we have a unresolved bug somewhere in the
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
243 ;; low-level process code. #### Now that we've switched to using
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
244 ;; the regular asynch process code, we should try removing this.
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
245 (call-process-internal
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
246 "/bin/csh"
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
247 nil
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
248 t
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
249 nil
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
250 "-fc"
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
251 (mapconcat
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
252 #'identity
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
253 (append
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
254 (list (expand-file-name "make-docfile" build-lib-src))
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
255 options processed)
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
256 " "))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
257 ;; (message (prin1-to-string (append options processed)))
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
258 (apply 'call-process-internal
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
259 ;; exec-path is set.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1315
diff changeset
260 ;; (expand-file-name "make-docfile" build-lib-src)
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
261 "make-docfile"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 nil
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 t
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264 nil
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
265 (append options processed)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266
1303
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
267 (message "Spawning make-docfile ...done")
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
268 ;; (write-region-internal (point-min) (point-max) "/tmp/DOC")
f99d3d25df86 [xemacs-hg @ 2003-02-15 10:15:54 by ben]
ben
parents: 1261
diff changeset
269 )
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 (kill-emacs)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 ;;; make-docfile.el ends here