comparison lisp/progmodes/etags.el @ 7284:87be9630459d

(tags-find-table-in-list): Only recurse if (tags-included-tables) returns non-nil (avoid infinite recursion).
author Roland McGrath <roland@gnu.org>
date Mon, 02 May 1994 21:41:43 +0000
parents b2485e94101a
children 0e89007c19c6
comparison
equal deleted inserted replaced
7283:3dc9a9e95d32 7284:87be9630459d
292 ;; its included tables. 292 ;; its included tables.
293 (save-excursion 293 (save-excursion
294 (let ((tags-file-name this-file) 294 (let ((tags-file-name this-file)
295 found) 295 found)
296 (visit-tags-table-buffer 'same) 296 (visit-tags-table-buffer 'same)
297 (if (tags-find-table-in-list file recursing-move-to 297 (and (tags-included-tables)
298 (tags-included-tables)) 298 ;; We have some included tables; check them.
299 (progn 299 (tags-find-table-in-list file recursing-move-to
300 ;; We found FILE in the included table. 300 tags-included-tables)
301 (if move-to 301 (progn
302 (progn 302 ;; We found FILE in the included table.
303 ;; The recursive call has already frobbed the list 303 (if move-to
304 ;; pointers. It set tags-table-parent-pointer-list 304 (progn
305 ;; to a list including RECURSING-MOVE-TO. Now we 305 ;; The recursive call has already frobbed the list
306 ;; must mutate that cons so its list pointers show 306 ;; pointers. It set tags-table-parent-pointer-list
307 ;; the position where we found this included table. 307 ;; to a list including RECURSING-MOVE-TO. Now we
308 (setcar (cdr (car recursing-move-to)) list) 308 ;; must mutate that cons so its list pointers show
309 (setcar (cdr (cdr (car recursing-move-to))) list) 309 ;; the position where we found this included table.
310 ;; Don't do further list frobnication below. 310 (setcar (cdr (car recursing-move-to)) list)
311 (setq move-to nil))) 311 (setcar (cdr (cdr (car recursing-move-to))) list)
312 (setq list t)))))) 312 ;; Don't do further list frobnication below.
313 (setq move-to nil)))
314 (setq list t))))))
313 (if (consp list) 315 (if (consp list)
314 (setq list (cdr list)))) 316 (setq list (cdr list))))
315 (and list move-to 317 (and list move-to
316 (progn 318 (progn
317 ;; We have located FILE in the list. 319 ;; We have located FILE in the list.