comparison lisp/textmodes/outline.el @ 18427:170b16201f82

(outline-discard-overlays): Don't use let inside a cycle.
author Richard M. Stallman <rms@gnu.org>
date Tue, 24 Jun 1997 02:26:42 +0000
parents 3af728d1f6cf
children d6e501bdc16a
comparison
equal deleted inserted replaced
18426:707758087b7e 18427:170b16201f82
413 ;; Overlays without a non-nil PROP property are not touched. 413 ;; Overlays without a non-nil PROP property are not touched.
414 (defun outline-discard-overlays (beg end prop) 414 (defun outline-discard-overlays (beg end prop)
415 (if (< end beg) 415 (if (< end beg)
416 (setq beg (prog1 end (setq end beg)))) 416 (setq beg (prog1 end (setq end beg))))
417 (save-excursion 417 (save-excursion
418 (let ((overlays (overlays-in beg end))) 418 (let ((overlays (overlays-in beg end))
419 o
420 o1)
419 (while overlays 421 (while overlays
420 (let ((o (car overlays))) 422 (setq o (car overlays))
421 (if (overlay-get o prop) 423 (if (overlay-get o prop)
422 ;; Either push this overlay outside beg...end 424 ;; Either push this overlay outside beg...end
423 ;; or split it to exclude beg...end 425 ;; or split it to exclude beg...end
424 ;; or delete it entirely (if it is contained in beg...end). 426 ;; or delete it entirely (if it is contained in beg...end).
425 (if (< (overlay-start o) beg) 427 (if (< (overlay-start o) beg)
426 (if (> (overlay-end o) end)
427 (let ((o1 (outline-copy-overlay o)))
428 (move-overlay o1 (overlay-start o1) beg)
429 (move-overlay o end (overlay-end o)))
430 (move-overlay o (overlay-start o) beg))
431 (if (> (overlay-end o) end) 428 (if (> (overlay-end o) end)
432 (move-overlay o end (overlay-end o)) 429 (progn
433 (delete-overlay o))))) 430 (setq o1 (outline-copy-overlay o))
431 (move-overlay o1 (overlay-start o1) beg)
432 (move-overlay o end (overlay-end o)))
433 (move-overlay o (overlay-start o) beg))
434 (if (> (overlay-end o) end)
435 (move-overlay o end (overlay-end o))
436 (delete-overlay o))))
434 (setq overlays (cdr overlays)))))) 437 (setq overlays (cdr overlays))))))
435 438
436 ;; Make a copy of overlay O, with the same beginning, end and properties. 439 ;; Make a copy of overlay O, with the same beginning, end and properties.
437 (defun outline-copy-overlay (o) 440 (defun outline-copy-overlay (o)
438 (let ((o1 (make-overlay (overlay-start o) (overlay-end o) 441 (let ((o1 (make-overlay (overlay-start o) (overlay-end o)