aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuanma Barranquero2014-03-20 19:16:47 +0100
committerJuanma Barranquero2014-03-20 19:16:47 +0100
commit814e26fa05d6496867bd99cf05bc57ce2e6c4d4b (patch)
tree1f8926ed528696d6d51af5e3ebb5410a47e85290
parentb730af26071f7ba08f5e46dce1b96a687e090c90 (diff)
downloademacs-814e26fa05d6496867bd99cf05bc57ce2e6c4d4b.tar.gz
emacs-814e26fa05d6496867bd99cf05bc57ce2e6c4d4b.zip
lisp/emacs-lisp/cl-extra.el (cl--map-overlays): Remove obsolete code.
-rw-r--r--lisp/ChangeLog2
-rw-r--r--lisp/emacs-lisp/cl-extra.el51
2 files changed, 16 insertions, 37 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0c62c55fa34..51d5de2f3be 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,7 @@
12014-03-20 Juanma Barranquero <lekktu@gmail.com> 12014-03-20 Juanma Barranquero <lekktu@gmail.com>
2 2
3 * emacs-lisp/cl-extra.el (cl--map-overlays): Remove obsolete code.
4
3 * skeleton.el (skeleton-autowrap): Mark as obsolete. Doc fix. 5 * skeleton.el (skeleton-autowrap): Mark as obsolete. Doc fix.
4 6
52014-03-20 Stefan Monnier <monnier@iro.umontreal.ca> 72014-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 9b28289e0b9..3761d04c2c2 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -269,43 +269,20 @@ If so, return the true (non-nil) value returned by PREDICATE.
269;;;###autoload 269;;;###autoload
270(defun cl--map-overlays (cl-func &optional cl-buffer cl-start cl-end cl-arg) 270(defun cl--map-overlays (cl-func &optional cl-buffer cl-start cl-end cl-arg)
271 (or cl-buffer (setq cl-buffer (current-buffer))) 271 (or cl-buffer (setq cl-buffer (current-buffer)))
272 (if (fboundp 'overlay-lists) 272 (let (cl-ovl)
273 273 (with-current-buffer cl-buffer
274 ;; This is the preferred algorithm, though overlay-lists is undocumented. 274 (setq cl-ovl (overlay-lists))
275 (let (cl-ovl) 275 (if cl-start (setq cl-start (copy-marker cl-start)))
276 (with-current-buffer cl-buffer 276 (if cl-end (setq cl-end (copy-marker cl-end))))
277 (setq cl-ovl (overlay-lists)) 277 (setq cl-ovl (nconc (car cl-ovl) (cdr cl-ovl)))
278 (if cl-start (setq cl-start (copy-marker cl-start))) 278 (while (and cl-ovl
279 (if cl-end (setq cl-end (copy-marker cl-end)))) 279 (or (not (overlay-start (car cl-ovl)))
280 (setq cl-ovl (nconc (car cl-ovl) (cdr cl-ovl))) 280 (and cl-end (>= (overlay-start (car cl-ovl)) cl-end))
281 (while (and cl-ovl 281 (and cl-start (<= (overlay-end (car cl-ovl)) cl-start))
282 (or (not (overlay-start (car cl-ovl))) 282 (not (funcall cl-func (car cl-ovl) cl-arg))))
283 (and cl-end (>= (overlay-start (car cl-ovl)) cl-end)) 283 (setq cl-ovl (cdr cl-ovl)))
284 (and cl-start (<= (overlay-end (car cl-ovl)) cl-start)) 284 (if cl-start (set-marker cl-start nil))
285 (not (funcall cl-func (car cl-ovl) cl-arg)))) 285 (if cl-end (set-marker cl-end nil))))
286 (setq cl-ovl (cdr cl-ovl)))
287 (if cl-start (set-marker cl-start nil))
288 (if cl-end (set-marker cl-end nil)))
289
290 ;; This alternate algorithm fails to find zero-length overlays.
291 (let ((cl-mark (with-current-buffer cl-buffer
292 (copy-marker (or cl-start (point-min)))))
293 (cl-mark2 (and cl-end (with-current-buffer cl-buffer
294 (copy-marker cl-end))))
295 cl-pos cl-ovl)
296 (while (save-excursion
297 (and (setq cl-pos (marker-position cl-mark))
298 (< cl-pos (or cl-mark2 (point-max)))
299 (progn
300 (set-buffer cl-buffer)
301 (setq cl-ovl (overlays-at cl-pos))
302 (set-marker cl-mark (next-overlay-change cl-pos)))))
303 (while (and cl-ovl
304 (or (/= (overlay-start (car cl-ovl)) cl-pos)
305 (not (and (funcall cl-func (car cl-ovl) cl-arg)
306 (set-marker cl-mark nil)))))
307 (setq cl-ovl (cdr cl-ovl))))
308 (set-marker cl-mark nil) (if cl-mark2 (set-marker cl-mark2 nil)))))
309 286
310;;; Support for `setf'. 287;;; Support for `setf'.
311;;;###autoload 288;;;###autoload