aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1997-08-13 19:39:39 +0000
committerRichard M. Stallman1997-08-13 19:39:39 +0000
commitc9411d2f035ff9aa297aa53f8abf5337186e9a57 (patch)
treeb6c9f177b38f9cf7fc11c16c2f82be8da14895f9
parent2f939ddd09db4442128d95e094b0d556788fb8bb (diff)
downloademacs-c9411d2f035ff9aa297aa53f8abf5337186e9a57.tar.gz
emacs-c9411d2f035ff9aa297aa53f8abf5337186e9a57.zip
(extent-properties, extent-at): New functions.
-rw-r--r--lisp/emacs-lisp/lucid.el25
1 files changed, 25 insertions, 0 deletions
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."
141(defun make-extent (beg end &optional buffer) 141(defun make-extent (beg end &optional buffer)
142 (make-overlay beg end buffer)) 142 (make-overlay beg end buffer))
143 143
144(defun extent-properties (extent)
145 (overlay-properties extent))
146
147(defun extent-at (pos &optional object property before)
148 (with-current-buffer (or object (current-buffer))
149 (let ((overlays (overlays-at pos)))
150 (when property
151 (let (filtered)
152 (while overlays
153 (if (overlay-get (car overlays) property)
154 (setq filtered (cons (car overlays) filtered)))
155 (setq overlays (cdr overlays)))
156 (setq overlays filtered)))
157 (setq overlays
158 (sort overlays
159 (function (lambda (o1 o2)
160 (let ((p1 (or (overlay-get o1 'priority) 0))
161 (p2 (or (overlay-get o2 'priority) 0)))
162 (or (> p1 p2)
163 (and (= p1 p2)
164 (> (overlay-start o1) (overlay-start o2)))))))))
165 (if before
166 (nth 1 (memq before overlays))
167 (car overlays)))))
168
144(defun set-extent-property (extent prop value) 169(defun set-extent-property (extent prop value)
145 ;; Make sure that separate adjacent extents 170 ;; Make sure that separate adjacent extents
146 ;; with the same mouse-face value 171 ;; with the same mouse-face value