From 9afcb27ecb6ffad982fed73fd0091e4bfed998ed Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Tue, 5 Oct 2010 21:43:06 +0200 Subject: [PATCH] (shr-overlays-in-region): Compute overlay positions correctly. --- lisp/ChangeLog | 1 + lisp/shr.el | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c54f3fcfe..bdb6076bc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -3,6 +3,7 @@ * shr.el (shr-tag-img): Shorten ALT texts and allow them to be line-broken. (shr-tag-img): Ignore image fetching errors. + (shr-overlays-in-region): Compute overlay positions correctly. * mm-decode.el (mm-shr): Require shr. diff --git a/lisp/shr.el b/lisp/shr.el index a0b96807e..2d5d4d623 100644 --- a/lisp/shr.el +++ b/lisp/shr.el @@ -555,8 +555,12 @@ Return a string with image data." (defun shr-overlays-in-region (start end) (let (result) (dolist (overlay (overlays-in start end)) - (push (list (max start (- end (overlay-start overlay))) - (min end (- end (overlay-end overlay) start)) + (push (list (if (> start (overlay-start overlay)) + (- end start) + (- end (overlay-start overlay))) + (if (< end (overlay-end overlay)) + 0 + (- end (overlay-end overlay))) (overlay-properties overlay)) result)) (nreverse result))) -- 2.25.1