diff options
| author | Richard M. Stallman | 1997-06-23 19:10:51 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-06-23 19:10:51 +0000 |
| commit | c88cd504f06bd7b478e07fcf52f2c77fa8140897 (patch) | |
| tree | 47abe61ba28a3c96b68ad85159307a33c4fa2a24 | |
| parent | 9d14ae763f967c44dfc99ffc4a86ed88cf6f2c48 (diff) | |
| download | emacs-c88cd504f06bd7b478e07fcf52f2c77fa8140897.tar.gz emacs-c88cd504f06bd7b478e07fcf52f2c77fa8140897.zip | |
(Info-validate-allnodes): Variable renamed, defvar added.
(Info-validate-thisnode, Info-validate-lossages): Likewise.
Change all references.
| -rw-r--r-- | lisp/informat.el | 126 |
1 files changed, 66 insertions, 60 deletions
diff --git a/lisp/informat.el b/lisp/informat.el index ead8bb5d37c..36f0c560675 100644 --- a/lisp/informat.el +++ b/lisp/informat.el | |||
| @@ -153,6 +153,10 @@ contains just the tag table and a directory of subfiles." | |||
| 153 | (search-forward "\nTag Table:\n") | 153 | (search-forward "\nTag Table:\n") |
| 154 | (insert "(Indirect)\n"))) | 154 | (insert "(Indirect)\n"))) |
| 155 | 155 | ||
| 156 | (defvar Info-validate-allnodes) | ||
| 157 | (defvar Info-validate-thisnode) | ||
| 158 | (defvar Info-validate-lossages) | ||
| 159 | |||
| 156 | ;;;###autoload | 160 | ;;;###autoload |
| 157 | (defun Info-validate () | 161 | (defun Info-validate () |
| 158 | "Check current buffer for validity as an Info file. | 162 | "Check current buffer for validity as an Info file. |
| @@ -166,76 +170,77 @@ Check that every node pointer points to an existing node." | |||
| 166 | (error "Don't yet know how to validate indirect info files: \"%s\"" | 170 | (error "Don't yet know how to validate indirect info files: \"%s\"" |
| 167 | (buffer-name (current-buffer)))) | 171 | (buffer-name (current-buffer)))) |
| 168 | (goto-char (point-min)) | 172 | (goto-char (point-min)) |
| 169 | (let ((allnodes '(("*"))) | 173 | (let ((Info-validate-allnodes '(("*"))) |
| 170 | (regexp "Node:[ \t]*\\([^,\n\t]*\\)[,\t\n]") | 174 | (regexp "Node:[ \t]*\\([^,\n\t]*\\)[,\t\n]") |
| 171 | (case-fold-search t) | 175 | (case-fold-search t) |
| 172 | (tags-losing nil) | 176 | (tags-losing nil) |
| 173 | (lossages ())) | 177 | (Info-validate-lossages ())) |
| 174 | (while (search-forward "\n\^_" nil t) | 178 | (while (search-forward "\n\^_" nil t) |
| 175 | (forward-line 1) | 179 | (forward-line 1) |
| 176 | (let ((beg (point))) | 180 | (let ((beg (point))) |
| 177 | (forward-line 1) | 181 | (forward-line 1) |
| 178 | (if (re-search-backward regexp beg t) | 182 | (if (re-search-backward regexp beg t) |
| 179 | (let ((name (downcase | 183 | (let ((name (downcase |
| 180 | (buffer-substring-no-properties | 184 | (buffer-substring-no-properties |
| 181 | (match-beginning 1) | 185 | (match-beginning 1) |
| 182 | (progn | 186 | (progn |
| 183 | (goto-char (match-end 1)) | 187 | (goto-char (match-end 1)) |
| 184 | (skip-chars-backward " \t") | 188 | (skip-chars-backward " \t") |
| 185 | (point)))))) | 189 | (point)))))) |
| 186 | (if (assoc name allnodes) | 190 | (if (assoc name Info-validate-allnodes) |
| 187 | (setq lossages | 191 | (setq Info-validate-lossages |
| 188 | (cons (list name "Duplicate node-name" nil) | 192 | (cons (list name "Duplicate node-name" nil) |
| 189 | lossages)) | 193 | Info-validate-lossages)) |
| 190 | (setq allnodes | 194 | (setq Info-validate-allnodes |
| 191 | (cons (list name | 195 | (cons (list name |
| 192 | (progn | 196 | (progn |
| 193 | (end-of-line) | 197 | (end-of-line) |
| 194 | (and (re-search-backward | 198 | (and (re-search-backward |
| 195 | "prev[ious]*:" beg t) | 199 | "prev[ious]*:" beg t) |
| 196 | (progn | 200 | (progn |
| 197 | (goto-char (match-end 0)) | 201 | (goto-char (match-end 0)) |
| 198 | (downcase | 202 | (downcase |
| 199 | (Info-following-node-name))))) | 203 | (Info-following-node-name))))) |
| 200 | beg) | 204 | beg) |
| 201 | allnodes))))))) | 205 | Info-validate-allnodes))))))) |
| 202 | (goto-char (point-min)) | 206 | (goto-char (point-min)) |
| 203 | (while (search-forward "\n\^_" nil t) | 207 | (while (search-forward "\n\^_" nil t) |
| 204 | (forward-line 1) | 208 | (forward-line 1) |
| 205 | (let ((beg (point)) | 209 | (let ((beg (point)) |
| 206 | thisnode next) | 210 | Info-validate-thisnode next) |
| 207 | (forward-line 1) | 211 | (forward-line 1) |
| 208 | (if (re-search-backward regexp beg t) | 212 | (if (re-search-backward regexp beg t) |
| 209 | (save-restriction | 213 | (save-restriction |
| 210 | (search-forward "\n\^_" nil 'move) | 214 | (search-forward "\n\^_" nil 'move) |
| 211 | (narrow-to-region beg (point)) | 215 | (narrow-to-region beg (point)) |
| 212 | (setq thisnode (downcase | 216 | (setq Info-validate-thisnode (downcase |
| 213 | (buffer-substring-no-properties | 217 | (buffer-substring-no-properties |
| 214 | (match-beginning 1) | 218 | (match-beginning 1) |
| 215 | (progn | 219 | (progn |
| 216 | (goto-char (match-end 1)) | 220 | (goto-char (match-end 1)) |
| 217 | (skip-chars-backward " \t") | 221 | (skip-chars-backward " \t") |
| 218 | (point))))) | 222 | (point))))) |
| 219 | (end-of-line) | 223 | (end-of-line) |
| 220 | (and (search-backward "next:" nil t) | 224 | (and (search-backward "next:" nil t) |
| 221 | (setq next (Info-validate-node-name "invalid Next")) | 225 | (setq next (Info-validate-node-name "invalid Next")) |
| 222 | (assoc next allnodes) | 226 | (assoc next Info-validate-allnodes) |
| 223 | (if (equal (car (cdr (assoc next allnodes))) | 227 | (if (equal (car (cdr (assoc next Info-validate-allnodes))) |
| 224 | thisnode) | 228 | Info-validate-thisnode) |
| 225 | ;; allow multiple `next' pointers to one node | 229 | ;; allow multiple `next' pointers to one node |
| 226 | (let ((tem lossages)) | 230 | (let ((tem Info-validate-lossages)) |
| 227 | (while tem | 231 | (while tem |
| 228 | (if (and (equal (car (cdr (car tem))) | 232 | (if (and (equal (car (cdr (car tem))) |
| 229 | "should have Previous") | 233 | "should have Previous") |
| 230 | (equal (car (car tem)) | 234 | (equal (car (car tem)) |
| 231 | next)) | 235 | next)) |
| 232 | (setq lossages (delq (car tem) lossages))) | 236 | (setq Info-validate-lossages |
| 237 | (delq (car tem) Info-validate-lossages))) | ||
| 233 | (setq tem (cdr tem)))) | 238 | (setq tem (cdr tem)))) |
| 234 | (setq lossages | 239 | (setq Info-validate-lossages |
| 235 | (cons (list next | 240 | (cons (list next |
| 236 | "should have Previous" | 241 | "should have Previous" |
| 237 | thisnode) | 242 | Info-validate-thisnode) |
| 238 | lossages)))) | 243 | Info-validate-lossages)))) |
| 239 | (end-of-line) | 244 | (end-of-line) |
| 240 | (if (re-search-backward "prev[ious]*:" nil t) | 245 | (if (re-search-backward "prev[ious]*:" nil t) |
| 241 | (Info-validate-node-name "invalid Previous")) | 246 | (Info-validate-node-name "invalid Previous")) |
| @@ -245,12 +250,12 @@ Check that every node pointer points to an existing node." | |||
| 245 | (if (re-search-forward "\n* Menu:" nil t) | 250 | (if (re-search-forward "\n* Menu:" nil t) |
| 246 | (while (re-search-forward "\n\\* " nil t) | 251 | (while (re-search-forward "\n\\* " nil t) |
| 247 | (Info-validate-node-name | 252 | (Info-validate-node-name |
| 248 | (concat "invalid menu item " | 253 | (concat "invalid menu item " |
| 249 | (buffer-substring (point) | 254 | (buffer-substring (point) |
| 250 | (save-excursion | 255 | (save-excursion |
| 251 | (skip-chars-forward "^:") | 256 | (skip-chars-forward "^:") |
| 252 | (point)))) | 257 | (point)))) |
| 253 | (Info-extract-menu-node-name)))) | 258 | (Info-extract-menu-node-name)))) |
| 254 | (goto-char (point-min)) | 259 | (goto-char (point-min)) |
| 255 | (while (re-search-forward "\\*note[ \n]*[^:\t]*:" nil t) | 260 | (while (re-search-forward "\\*note[ \n]*[^:\t]*:" nil t) |
| 256 | (goto-char (+ (match-beginning 0) 5)) | 261 | (goto-char (+ (match-beginning 0) 5)) |
| @@ -263,29 +268,29 @@ Check that every node pointer points to an existing node." | |||
| 263 | (point)))) | 268 | (point)))) |
| 264 | (Info-extract-menu-node-name "Bad format cross-reference"))))))) | 269 | (Info-extract-menu-node-name "Bad format cross-reference"))))))) |
| 265 | (setq tags-losing (not (Info-validate-tags-table))) | 270 | (setq tags-losing (not (Info-validate-tags-table))) |
| 266 | (if (or lossages tags-losing) | 271 | (if (or Info-validate-lossages tags-losing) |
| 267 | (with-output-to-temp-buffer " *problems in info file*" | 272 | (with-output-to-temp-buffer " *problems in info file*" |
| 268 | (while lossages | 273 | (while Info-validate-lossages |
| 269 | (princ "In node \"") | 274 | (princ "In node \"") |
| 270 | (princ (car (car lossages))) | 275 | (princ (car (car Info-validate-lossages))) |
| 271 | (princ "\", ") | 276 | (princ "\", ") |
| 272 | (let ((tem (nth 1 (car lossages)))) | 277 | (let ((tem (nth 1 (car Info-validate-lossages)))) |
| 273 | (cond ((string-match "\n" tem) | 278 | (cond ((string-match "\n" tem) |
| 274 | (princ (substring tem 0 (match-beginning 0))) | 279 | (princ (substring tem 0 (match-beginning 0))) |
| 275 | (princ "...")) | 280 | (princ "...")) |
| 276 | (t | 281 | (t |
| 277 | (princ tem)))) | 282 | (princ tem)))) |
| 278 | (if (nth 2 (car lossages)) | 283 | (if (nth 2 (car Info-validate-lossages)) |
| 279 | (progn | 284 | (progn |
| 280 | (princ ": ") | 285 | (princ ": ") |
| 281 | (let ((tem (nth 2 (car lossages)))) | 286 | (let ((tem (nth 2 (car Info-validate-lossages)))) |
| 282 | (cond ((string-match "\n" tem) | 287 | (cond ((string-match "\n" tem) |
| 283 | (princ (substring tem 0 (match-beginning 0))) | 288 | (princ (substring tem 0 (match-beginning 0))) |
| 284 | (princ "...")) | 289 | (princ "...")) |
| 285 | (t | 290 | (t |
| 286 | (princ tem)))))) | 291 | (princ tem)))))) |
| 287 | (terpri) | 292 | (terpri) |
| 288 | (setq lossages (cdr lossages))) | 293 | (setq Info-validate-lossages (cdr Info-validate-lossages))) |
| 289 | (if tags-losing (princ "\nTags table must be recomputed\n"))) | 294 | (if tags-losing (princ "\nTags table must be recomputed\n"))) |
| 290 | ;; Here if info file is valid. | 295 | ;; Here if info file is valid. |
| 291 | ;; If we already made a list of problems, clear it out. | 296 | ;; If we already made a list of problems, clear it out. |
| @@ -307,16 +312,17 @@ Check that every node pointer points to an existing node." | |||
| 307 | (buffer-substring-no-properties | 312 | (buffer-substring-no-properties |
| 308 | (point) | 313 | (point) |
| 309 | (progn | 314 | (progn |
| 310 | (skip-chars-forward "^,\t\n") | 315 | (skip-chars-forward "^,\t\n") |
| 311 | (skip-chars-backward " ") | 316 | (skip-chars-backward " ") |
| 312 | (point)))))) | 317 | (point)))))) |
| 313 | (if (null name) | 318 | (if (null name) |
| 314 | nil | 319 | nil |
| 315 | (setq name (downcase name)) | 320 | (setq name (downcase name)) |
| 316 | (or (and (> (length name) 0) (= (aref name 0) ?\()) | 321 | (or (and (> (length name) 0) (= (aref name 0) ?\()) |
| 317 | (assoc name allnodes) | 322 | (assoc name Info-validate-allnodes) |
| 318 | (setq lossages | 323 | (setq Info-validate-lossages |
| 319 | (cons (list thisnode kind name) lossages)))) | 324 | (cons (list Info-validate-thisnode kind name) |
| 325 | Info-validate-lossages)))) | ||
| 320 | name) | 326 | name) |
| 321 | 327 | ||
| 322 | (defun Info-validate-tags-table () | 328 | (defun Info-validate-tags-table () |
| @@ -328,7 +334,7 @@ Check that every node pointer points to an existing node." | |||
| 328 | (start (progn (search-backward "\nTag table:\n") | 334 | (start (progn (search-backward "\nTag table:\n") |
| 329 | (1- (match-end 0)))) | 335 | (1- (match-end 0)))) |
| 330 | tem) | 336 | tem) |
| 331 | (setq tem allnodes) | 337 | (setq tem Info-validate-allnodes) |
| 332 | (while tem | 338 | (while tem |
| 333 | (goto-char start) | 339 | (goto-char start) |
| 334 | (or (equal (car (car tem)) "*") | 340 | (or (equal (car (car tem)) "*") |
| @@ -343,7 +349,7 @@ Check that every node pointer points to an existing node." | |||
| 343 | (setq tem (downcase (buffer-substring-no-properties | 349 | (setq tem (downcase (buffer-substring-no-properties |
| 344 | (match-beginning 1) | 350 | (match-beginning 1) |
| 345 | (match-end 1)))) | 351 | (match-end 1)))) |
| 346 | (setq tem (assoc tem allnodes)) | 352 | (setq tem (assoc tem Info-validate-allnodes)) |
| 347 | (if (or (not tem) | 353 | (if (or (not tem) |
| 348 | (< 1000 (progn | 354 | (< 1000 (progn |
| 349 | (goto-char (match-beginning 2)) | 355 | (goto-char (match-beginning 2)) |