Function: copy-overlay

copy-overlay is a byte-compiled function defined in subr.el.gz.

Signature

(copy-overlay O)

Documentation

Return a copy of overlay O.

View in manual

Source Code

;; Defined in /usr/src/emacs/lisp/subr.el.gz
;;;; Overlay operations

(defun copy-overlay (o)
  "Return a copy of overlay O."
  (declare (important-return-value t))
  (let ((o1 (if (overlay-buffer o)
                (make-overlay (overlay-start o) (overlay-end o)
                              ;; FIXME: there's no easy way to find the
                              ;; insertion-type of overlay's start and end.
                              (overlay-buffer o))
              (let ((o1 (make-overlay (point-min) (point-min))))
                (delete-overlay o1)
                o1)))
	(props (overlay-properties o)))
    (while props
      (overlay-put o1 (pop props) (pop props)))
    o1))