From c9411d2f035ff9aa297aa53f8abf5337186e9a57 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 13 Aug 1997 19:39:39 +0000 Subject: [PATCH] (extent-properties, extent-at): New functions. --- lisp/emacs-lisp/lucid.el | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lisp/emacs-lisp/lucid.el b/lisp/emacs-lisp/lucid.el index e7dc74e4d4b..80c5973046c 100644 --- a/lisp/emacs-lisp/lucid.el +++ b/lisp/emacs-lisp/lucid.el @@ -141,6 +141,31 @@ bottom of the buffer stack." (defun make-extent (beg end &optional buffer) (make-overlay beg end buffer)) +(defun extent-properties (extent) + (overlay-properties extent)) + +(defun extent-at (pos &optional object property before) + (with-current-buffer (or object (current-buffer)) + (let ((overlays (overlays-at pos))) + (when property + (let (filtered) + (while overlays + (if (overlay-get (car overlays) property) + (setq filtered (cons (car overlays) filtered))) + (setq overlays (cdr overlays))) + (setq overlays filtered))) + (setq overlays + (sort overlays + (function (lambda (o1 o2) + (let ((p1 (or (overlay-get o1 'priority) 0)) + (p2 (or (overlay-get o2 'priority) 0))) + (or (> p1 p2) + (and (= p1 p2) + (> (overlay-start o1) (overlay-start o2))))))))) + (if before + (nth 1 (memq before overlays)) + (car overlays))))) + (defun set-extent-property (extent prop value) ;; Make sure that separate adjacent extents ;; with the same mouse-face value -- 2.39.5