Mercurial > emacs
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) |