annotate lisp/informat.el @ 46205:6676ac71682b

Update mouse button info. Don't give the names of Emacs commands that the characters run. Clarify what SPC and DEL do. Clarify the description of the minibuffer. Wording change for completion. Explain Mouse-2 better.
author Richard M. Stallman <rms@gnu.org>
date Sun, 07 Jul 2002 11:31:31 +0000
parents 253f761ad37b
children e88404e8f2cf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
660
08eb386dd0f3 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 257
diff changeset
1 ;;; informat.el --- info support functions package for Emacs
08eb386dd0f3 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 257
diff changeset
2
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
3 ;; Copyright (C) 1986 Free Software Foundation, Inc.
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 660
diff changeset
5 ;; Maintainer: FSF
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
6 ;; Keywords: help
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 660
diff changeset
7
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 660
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 ;; any later version.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13291
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13291
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13291
diff changeset
23 ;; Boston, MA 02111-1307, USA.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
25 ;;; Commentary:
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
26
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
27 ;; Nowadays, the Texinfo formatting commands always tagify a buffer
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
28 ;; (as does `makeinfo') since @anchor commands need tag tables.
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
29
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 660
diff changeset
30 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 660
diff changeset
31
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 (require 'info)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 ;;;###autoload
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
35 (defun Info-tagify (&optional input-buffer-name)
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
36 "Create or update Info file tag table in current buffer or in a region."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 ;; Save and restore point and restrictions.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 ;; save-restrictions would not work
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 ;; because it records the old max relative to the end.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 ;; We record it relative to the beginning.
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
42 (if input-buffer-name
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
43 (message "Tagifying region in %s ..." input-buffer-name)
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
44 (message
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
45 "Tagifying %s ..." (file-name-nondirectory (buffer-file-name))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 (let ((omin (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 (omax (point-max))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 (nomax (= (point-max) (1+ (buffer-size))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 (opoint (point)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 (unwind-protect
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
51 (progn
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
52 (widen)
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
53 (goto-char (point-min))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
54 (if (search-forward "\^_\nIndirect:\n" nil t)
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
55 (message
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
56 "Cannot tagify split info file. Run this before splitting.")
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
57 (let (tag-list
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
58 refillp
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
59 (case-fold-search t)
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
60 (regexp
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
61 (concat
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
62 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
63
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
64
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
65 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
66 "@anchor" ; match-string 2 matches @anchor
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
67 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
68 "\\(-no\\|-yes\\)" ; match-string 3 matches -no or -yes
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
69 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
70 "-refill"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
71 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
72
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
73 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
74 "{"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
75 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
76 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
77 "[^}]+" ; match-string 6 matches arg to anchor
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
78 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
79 "\\("
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
80 "}"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
81 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
82
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
83 "\\|"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
84
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
85 "\\("
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
86 "\n\^_\\(\^L\\)?"
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
87 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
88
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
89 "\\("
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
90 "\n\\(File:[ \t]*\\([^,\n\t]*\\)[,\t\n]+[ \t\n]*\\)?"
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
91 "Node:[ \t]*"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
92 "\\("
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
93 "[^,\n\t]*" ; match-string 13 matches arg to node name
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
94 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
95 "[,\t\n]"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
96 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
97
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
98 "\\)"
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
99 )))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
100 (while (re-search-forward regexp nil t)
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
101 (if (string-equal "@anchor" (match-string 2))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
102 (progn
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
103 ;; kludge lest lose match-data
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
104 (if (string-equal "-yes" (match-string 3))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
105 (setq refillp t))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
106 (setq tag-list
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
107 (cons (list
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
108 (concat "Ref: " (match-string 6))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
109 (match-beginning 0))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
110 tag-list))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
111 (if (eq refillp t)
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
112 ;; set start and end so texinfo-format-refill works
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
113 (let ((texinfo-command-start (match-beginning 0))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
114 (texinfo-command-end (match-end 0)))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
115 (texinfo-format-refill))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
116 (delete-region (match-beginning 0) (match-end 0))))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
117 ;; else this is a Node
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
118 (setq tag-list
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
119 (cons (list
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
120 (concat "Node: " (match-string-no-properties 13))
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
121 (1+ (match-beginning 10)))
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
122 tag-list))))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
123
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 (goto-char (point-max))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 (forward-line -8)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 (let ((buffer-read-only nil))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 (if (search-forward "\^_\nEnd tag table\n" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 (let ((end (point)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129 (search-backward "\nTag table:\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
130 (beginning-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 (delete-region (point) end)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 (goto-char (point-max))
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
133 (or (bolp)
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
134 (newline))
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
135 (insert "\^_\f\nTag table:\n")
18137
985e47a14cab (Info-tagify): Don't set Info-tag-table-marker if not in Info mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
136 (if (eq major-mode 'info-mode)
985e47a14cab (Info-tagify): Don't set Info-tag-table-marker if not in Info mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
137 (move-marker Info-tag-table-marker (point)))
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
138 (setq tag-list (nreverse tag-list))
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
139 (while tag-list
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
140 (insert (car (car tag-list)) ?\177)
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
141 (princ (car (cdr (car tag-list))) (current-buffer))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142 (insert ?\n)
22660
1614e05bf2b5 (Info-tagify): Handle tags for @anchor.
Richard M. Stallman <rms@gnu.org>
parents: 22644
diff changeset
143 (setq tag-list (cdr tag-list)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 (insert "\^_\nEnd tag table\n")))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145 (goto-char opoint)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146 (narrow-to-region omin (if nomax (1+ (buffer-size))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 (min omax (point-max))))))
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
148 (if input-buffer-name
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
149 (message "Tagifying region in %s done" input-buffer-name)
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
150 (message
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
151 "Tagifying %s done" (file-name-nondirectory (buffer-file-name)))))
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
152
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154 ;;;###autoload
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155 (defun Info-split ()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
156 "Split an info file into an indirect file plus bounded-size subfiles.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157 Each subfile will be up to 50,000 characters plus one node.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159 To use this command, first visit a large Info file that has a tag
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 table. The buffer is modified into a (small) indirect info file which
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 should be saved in place of the original visited file.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
162
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163 The subfiles are written in the same directory the original file is
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 in, with names generated by appending `-' and a number to the original
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165 file name. The indirect file still functions as an Info file, but it
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 contains just the tag table and a directory of subfiles."
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
168 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 (if (< (buffer-size) 70000)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170 (error "This is too small to be worth splitting"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 (search-forward "\^_")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173 (forward-char -1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 (let ((start (point))
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
175 (chars-deleted 0)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 subfiles
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 (subfile-number 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 (case-fold-search t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 (filename (file-name-sans-versions buffer-file-name)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 (goto-char (point-max))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 (forward-line -8)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 (setq buffer-read-only nil)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183 (or (search-forward "\^_\nEnd tag table\n" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 (error "Tag table required; use M-x Info-tagify"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 (search-backward "\nTag table:\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 (if (looking-at "\nTag table:\n\^_")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 (error "Tag table is just a skeleton; use M-x Info-tagify"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 (beginning-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 (forward-char 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 (save-restriction
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 (narrow-to-region (point-min) (point))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 (while (< (1+ (point)) (point-max))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194 (goto-char (min (+ (point) 50000) (point-max)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
195 (search-forward "\^_" nil 'move)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
196 (setq subfiles
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
197 (cons (list (+ start chars-deleted)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198 (concat (file-name-nondirectory filename)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
199 (format "-%d" subfile-number)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
200 subfiles))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
201 ;; Put a newline at end of split file, to make Unix happier.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
202 (insert "\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
203 (write-region (point-min) (point)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
204 (concat filename (format "-%d" subfile-number)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
205 (delete-region (1- (point)) (point))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
206 ;; Back up over the final ^_.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
207 (forward-char -1)
22693
4f2282284e2a (Info-tagify): Finish previous change.
Richard M. Stallman <rms@gnu.org>
parents: 22660
diff changeset
208 (setq chars-deleted (+ chars-deleted (- (point) start)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 (delete-region start (point))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 (setq subfile-number (1+ subfile-number))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 (while subfiles
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 (goto-char start)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213 (insert (nth 1 (car subfiles))
10156
baf3b68f7e56 (Info-split): Fix 1-off error in subfile position.
Richard M. Stallman <rms@gnu.org>
parents: 10154
diff changeset
214 (format ": %d" (1- (car (car subfiles))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
215 "\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216 (setq subfiles (cdr subfiles)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
217 (goto-char start)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218 (insert "\^_\nIndirect:\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219 (search-forward "\nTag Table:\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
220 (insert "(Indirect)\n")))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
221
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
222 (defvar Info-validate-allnodes)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
223 (defvar Info-validate-thisnode)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
224 (defvar Info-validate-lossages)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
225
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 ;;;###autoload
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 (defun Info-validate ()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 "Check current buffer for validity as an Info file.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 Check that every node pointer points to an existing node."
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 (save-restriction
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 (widen)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 (if (search-forward "\nTag table:\n(Indirect)\n" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236 (error "Don't yet know how to validate indirect info files: \"%s\""
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237 (buffer-name (current-buffer))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
238 (goto-char (point-min))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
239 (let ((Info-validate-allnodes '(("*")))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
240 (regexp "Node:[ \t]*\\([^,\n\t]*\\)[,\t\n]")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
241 (case-fold-search t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
242 (tags-losing nil)
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
243 (Info-validate-lossages ()))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244 (while (search-forward "\n\^_" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
245 (forward-line 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
246 (let ((beg (point)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
247 (forward-line 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 (if (re-search-backward regexp beg t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249 (let ((name (downcase
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
250 (buffer-substring-no-properties
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
251 (match-beginning 1)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
252 (progn
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
253 (goto-char (match-end 1))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
254 (skip-chars-backward " \t")
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
255 (point))))))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
256 (if (assoc name Info-validate-allnodes)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
257 (setq Info-validate-lossages
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
258 (cons (list name "Duplicate node-name" nil)
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
259 Info-validate-lossages))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
260 (setq Info-validate-allnodes
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
261 (cons (list name
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
262 (progn
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
263 (end-of-line)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
264 (and (re-search-backward
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
265 "prev[ious]*:" beg t)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
266 (progn
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
267 (goto-char (match-end 0))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
268 (downcase
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
269 (Info-following-node-name)))))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
270 beg)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
271 Info-validate-allnodes)))))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
273 (while (search-forward "\n\^_" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
274 (forward-line 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275 (let ((beg (point))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
276 Info-validate-thisnode next)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277 (forward-line 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278 (if (re-search-backward regexp beg t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 (save-restriction
25427
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
280 (let ((md (match-data)))
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
281 (search-forward "\n\^_" nil 'move)
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
282 (narrow-to-region beg (point))
dde5fcbfa2af (Info-tagify): Don't insert more than one newline before the tag table.
Richard M. Stallman <rms@gnu.org>
parents: 22693
diff changeset
283 (set-match-data md))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
284 (setq Info-validate-thisnode (downcase
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
285 (buffer-substring-no-properties
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
286 (match-beginning 1)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
287 (progn
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
288 (goto-char (match-end 1))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
289 (skip-chars-backward " \t")
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
290 (point)))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 (end-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 (and (search-backward "next:" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293 (setq next (Info-validate-node-name "invalid Next"))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
294 (assoc next Info-validate-allnodes)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
295 (if (equal (car (cdr (assoc next Info-validate-allnodes)))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
296 Info-validate-thisnode)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 ;; allow multiple `next' pointers to one node
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
298 (let ((tem Info-validate-lossages))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 (while tem
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 (if (and (equal (car (cdr (car tem)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 "should have Previous")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 (equal (car (car tem))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303 next))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
304 (setq Info-validate-lossages
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
305 (delq (car tem) Info-validate-lossages)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306 (setq tem (cdr tem))))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
307 (setq Info-validate-lossages
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308 (cons (list next
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 "should have Previous"
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
310 Info-validate-thisnode)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
311 Info-validate-lossages))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312 (end-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 (if (re-search-backward "prev[ious]*:" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 (Info-validate-node-name "invalid Previous"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 (end-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 (if (search-backward "up:" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
317 (Info-validate-node-name "invalid Up"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318 (if (re-search-forward "\n* Menu:" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 (while (re-search-forward "\n\\* " nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320 (Info-validate-node-name
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
321 (concat "invalid menu item "
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
322 (buffer-substring (point)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
323 (save-excursion
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
324 (skip-chars-forward "^:")
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
325 (point))))
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
326 (Info-extract-menu-node-name))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 (while (re-search-forward "\\*note[ \n]*[^:\t]*:" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 (goto-char (+ (match-beginning 0) 5))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 (skip-chars-forward " \n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331 (Info-validate-node-name
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 (concat "invalid reference "
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 (buffer-substring (point)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335 (skip-chars-forward "^:")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336 (point))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 (Info-extract-menu-node-name "Bad format cross-reference")))))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338 (setq tags-losing (not (Info-validate-tags-table)))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
339 (if (or Info-validate-lossages tags-losing)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 (with-output-to-temp-buffer " *problems in info file*"
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
341 (while Info-validate-lossages
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 (princ "In node \"")
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
343 (princ (car (car Info-validate-lossages)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 (princ "\", ")
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
345 (let ((tem (nth 1 (car Info-validate-lossages))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
346 (cond ((string-match "\n" tem)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 (princ (substring tem 0 (match-beginning 0)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 (princ "..."))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 (t
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350 (princ tem))))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
351 (if (nth 2 (car Info-validate-lossages))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
352 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353 (princ ": ")
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
354 (let ((tem (nth 2 (car Info-validate-lossages))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355 (cond ((string-match "\n" tem)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356 (princ (substring tem 0 (match-beginning 0)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 (princ "..."))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 (t
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359 (princ tem))))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
360 (terpri)
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
361 (setq Info-validate-lossages (cdr Info-validate-lossages)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 (if tags-losing (princ "\nTags table must be recomputed\n")))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363 ;; Here if info file is valid.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364 ;; If we already made a list of problems, clear it out.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
365 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
366 (if (get-buffer " *problems in info file*")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
367 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
368 (set-buffer " *problems in info file*")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
369 (kill-buffer (current-buffer)))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
370 (message "File appears valid"))))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
371
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
372 (defun Info-validate-node-name (kind &optional name)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
373 (if name
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
374 nil
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
375 (goto-char (match-end 0))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
376 (skip-chars-forward " \t")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
377 (if (= (following-char) ?\()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
378 nil
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
379 (setq name
13291
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
380 (buffer-substring-no-properties
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381 (point)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
382 (progn
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
383 (skip-chars-forward "^,\t\n")
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
384 (skip-chars-backward " ")
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
385 (point))))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 (if (null name)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 nil
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 (setq name (downcase name))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
389 (or (and (> (length name) 0) (= (aref name 0) ?\())
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
390 (assoc name Info-validate-allnodes)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
391 (setq Info-validate-lossages
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
392 (cons (list Info-validate-thisnode kind name)
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
393 Info-validate-lossages))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 name)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 (defun Info-validate-tags-table ()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397 (goto-char (point-min))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 (if (not (search-forward "\^_\nEnd tag table\n" nil t))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 t
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400 (not (catch 'losing
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401 (let* ((end (match-beginning 0))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402 (start (progn (search-backward "\nTag table:\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 (1- (match-end 0))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 tem)
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
405 (setq tem Info-validate-allnodes)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406 (while tem
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407 (goto-char start)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
408 (or (equal (car (car tem)) "*")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
409 (search-forward (concat "Node: "
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410 (car (car tem))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411 "\177")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412 end t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 (throw 'losing 'x))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
414 (setq tem (cdr tem)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415 (goto-char (1+ start))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
416 (while (looking-at ".*Node: \\(.*\\)\177\\([0-9]+\\)$")
13291
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
417 (setq tem (downcase (buffer-substring-no-properties
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418 (match-beginning 1)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
419 (match-end 1))))
18422
96deedadd2f0 (Info-validate-allnodes): Variable renamed, defvar added.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
420 (setq tem (assoc tem Info-validate-allnodes))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421 (if (or (not tem)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
422 (< 1000 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423 (goto-char (match-beginning 2))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424 (setq tem (- (car (cdr (cdr tem)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
425 (read (current-buffer))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
426 (if (> tem 0) tem (- tem)))))
13291
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
427 (throw 'losing 'y))
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
428 (forward-line 1)))
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
429 (if (looking-at "\^_\n")
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
430 (forward-line 1))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
431 (or (looking-at "End tag table\n")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
432 (throw 'losing 'z))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433 nil))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
434
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
435 ;;;###autoload
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
436 (defun batch-info-validate ()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
437 "Runs `Info-validate' on the files remaining on the command line.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438 Must be used only with -batch, and kills Emacs on completion.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
439 Each file will be processed even if an error occurred previously.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
440 For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\""
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
441 (if (not noninteractive)
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 25427
diff changeset
442 (error "batch-info-validate may only be used -batch"))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
443 (let ((version-control t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
444 (auto-save-default nil)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
445 (find-file-run-dired nil)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
446 (kept-old-versions 259259)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
447 (kept-new-versions 259259))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
448 (let ((error 0)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
449 file
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
450 (files ()))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
451 (while command-line-args-left
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
452 (setq file (expand-file-name (car command-line-args-left)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
453 (cond ((not (file-exists-p file))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
454 (message ">> %s does not exist!" file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
455 (setq error 1
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
456 command-line-args-left (cdr command-line-args-left)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
457 ((file-directory-p file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
458 (setq command-line-args-left (nconc (directory-files file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
459 (cdr command-line-args-left))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
460 (t
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
461 (setq files (cons file files)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
462 command-line-args-left (cdr command-line-args-left)))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
463 (while files
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
464 (setq file (car files)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
465 files (cdr files))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
466 (let ((lose nil))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
467 (condition-case err
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
468 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
469 (if buffer-file-name (kill-buffer (current-buffer)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
470 (find-file file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471 (buffer-disable-undo (current-buffer))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
472 (set-buffer-modified-p nil)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473 (fundamental-mode)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
474 (let ((case-fold-search nil))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
475 (goto-char (point-max))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
476 (cond ((search-backward "\n\^_\^L\nTag table:\n" nil t)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
477 (message "%s already tagified" file))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
478 ((< (point-max) 30000)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
479 (message "%s too small to bother tagifying" file))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
480 (t
923
9f3cc03dae67 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
481 (Info-tagify))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
482 (let ((loss-name " *problems in info file*"))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
483 (message "Checking validity of info file %s..." file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 (if (get-buffer loss-name)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
485 (kill-buffer loss-name))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
486 (Info-validate)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487 (if (not (get-buffer loss-name))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
488 nil ;(message "Checking validity of info file %s... OK" file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489 (message "----------------------------------------------------------------------")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
490 (message ">> PROBLEMS IN INFO FILE %s" file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
491 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
492 (set-buffer loss-name)
13291
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
493 (princ (buffer-substring-no-properties
49de0d4ca42e (Info-validate, Info-validate-node-name): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 10156
diff changeset
494 (point-min) (point-max))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495 (message "----------------------------------------------------------------------")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
496 (setq error 1 lose t)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
497 (if (and (buffer-modified-p)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
498 (not lose))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499 (progn (message "Saving modified %s" file)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
500 (save-buffer))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
501 (error (message ">> Error: %s" (prin1-to-string err))))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
502 (kill-emacs error))))
660
08eb386dd0f3 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 257
diff changeset
503
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 18137
diff changeset
504 (provide 'informat)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 18137
diff changeset
505
660
08eb386dd0f3 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 257
diff changeset
506 ;;; informat.el ends here