diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-08-13 19:39:39 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-08-13 19:39:39 +0000 |
commit | c9411d2f035ff9aa297aa53f8abf5337186e9a57 (patch) | |
tree | b6c9f177b38f9cf7fc11c16c2f82be8da14895f9 /lisp/emacs-lisp | |
parent | 2f939ddd09db4442128d95e094b0d556788fb8bb (diff) | |
download | emacs-c9411d2f035ff9aa297aa53f8abf5337186e9a57.tar.gz emacs-c9411d2f035ff9aa297aa53f8abf5337186e9a57.tar.bz2 emacs-c9411d2f035ff9aa297aa53f8abf5337186e9a57.zip |
(extent-properties, extent-at): New functions.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/lucid.el | 25 |
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." (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 |