* subr.el (copy-overlay): Handle deleted overlays.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 11 Feb 2010 19:35:36 +0000 (14:35 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 11 Feb 2010 19:35:36 +0000 (14:35 -0500)
lisp/ChangeLog
lisp/subr.el

index e5ad1f1..559d4f5 100644 (file)
@@ -1,5 +1,7 @@
 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).
 
index b80988a..3b5d977 100644 (file)
@@ -2232,10 +2232,14 @@ If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."
 
 (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)))