[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/htmlize 726c77b 120/134: Correctly sort overlays in Emacs
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/htmlize 726c77b 120/134: Correctly sort overlays in Emacs 24. |
Date: |
Sat, 7 Aug 2021 09:17:19 -0400 (EDT) |
branch: elpa/htmlize
commit 726c77b909f825b27e734a5460e3e2b63cfc60b0
Author: Hrvoje Niksic <hniksic@gmail.com>
Commit: Hrvoje Niksic <hniksic@gmail.com>
Correctly sort overlays in Emacs 24.
---
htmlize.el | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/htmlize.el b/htmlize.el
index 9bcf38b..6cbe110 100644
--- a/htmlize.el
+++ b/htmlize.el
@@ -1275,6 +1275,23 @@ overlays that specify `face'."
faces :test 'equal))))
faces))
+(if (>= emacs-major-version 25)
+ (defun htmlize-sorted-overlays-at (pos)
+ (overlays-at pos t))
+
+ (defun htmlize-sorted-overlays-at (pos)
+ ;; Like OVERLAYS-AT with the SORTED argument, for older Emacsen.
+ (let ((overlays (sort* overlays #'<
+ :key (lambda (o)
+ (- (overlay-end o) (overlay-start o))))))
+ (setq overlays
+ (stable-sort overlays #'<
+ :key (lambda (o)
+ (let ((prio (overlay-get o 'priority)))
+ (if (numberp prio) prio 0)))))
+ (nreverse overlays))))
+
+
;; htmlize-faces-at-point returns the faces in use at point. The
;; faces are sorted by increasing priority, i.e. the last face takes
;; precedence.
@@ -1294,10 +1311,7 @@ overlays that specify `face'."
;; Collect overlays at point that specify `face'.
(delete-if-not (lambda (o)
(overlay-get o 'face))
- (nreverse
- (if (>= emacs-major-version 25)
- (overlays-at (point) t)
- (overlays-at (point))))))
+ (nreverse (htmlize-sorted-overlays-at (point)))))
list face-prop)
(dolist (overlay overlays)
(setq face-prop (overlay-get overlay 'face)
- [nongnu] elpa/htmlize 93294ff 091/134: Bumped version., (continued)
- [nongnu] elpa/htmlize 93294ff 091/134: Bumped version., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize a4569e3 092/134: Correctly handle :inherit specifying a list of faces., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 31bc1a8 094/134: Remove stray debugging print., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 8c09264 097/134: Bump version and copyright., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize a95e591 107/134: Bump version., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 2c41d79 101/134: Update mail address., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 9d4ad62 102/134: Set type and group attribute for custom variable, ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 88e2cb6 109/134: Update copyright info., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 5ea2cc3 113/134: Let `overlays-at' sort the overlays. (#9), ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 1bc2f1b 118/134: Bump version., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 726c77b 120/134: Correctly sort overlays in Emacs 24.,
ELPA Syncer <=
- [nongnu] elpa/htmlize a8b73f1 122/134: New option htmlize-untabify. (#21), ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 9145b68 128/134: Simplify ensuring of font-lock., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 86f22f2 132/134: Add Homepage to the package header, ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 999eef2 032/134: Support searching for any property change., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 7f94aa2 039/134: Conditionalize on color-instance-rgb-components., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 34845c5 042/134: Update comment., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize c847998 057/134: The future has come: switch to lexical scope., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 845329e 060/134: Don't attempt to use lexical binding in emacsen that don't support it., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize a6f9f07 066/134: Decide at each macroexpansion whether to use `lexical-let' or `let'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/htmlize 58775c8 064/134: Improve introductory text., ELPA Syncer, 2021/08/07