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 | 2a79f7365840657621facc1da7a274ce8843ed9d (patch) | |
tree | db6e4034500e811ee5262304c6571333149992f1 /lisp/emacs-lisp/lucid.el | |
parent | 218d3a21e43cafb14886e1d278ebcf44ccb93f41 (diff) | |
download | emacs-2a79f7365840657621facc1da7a274ce8843ed9d.tar.gz |
(extent-properties, extent-at): New functions.
Diffstat (limited to 'lisp/emacs-lisp/lucid.el')
-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 |