2010-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
+ * subr.el (copy-overlay): Handle deleted overlays.
+
* man.el (Man-completion-table): Don't signal an error if we can't run
manual-program (bug#4056).
(defun copy-overlay (o)
"Return a copy of overlay O."
- (let ((o1 (make-overlay (overlay-start o) (overlay-end o)
- ;; FIXME: there's no easy way to find the
- ;; insertion-type of the two markers.
- (overlay-buffer o)))
+ (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 the two markers.
+ (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)))