# HG changeset patch # User Richard M. Stallman # Date 871501179 0 # Node ID ce11e3471a36022af64ad66af3ad4c39dc35de60 # Parent 4a529ce5a52e2797f9b4556476e09c8a0832df01 (extent-properties, extent-at): New functions. diff -r 4a529ce5a52e -r ce11e3471a36 lisp/emacs-lisp/lucid.el --- a/lisp/emacs-lisp/lucid.el Wed Aug 13 15:37:10 1997 +0000 +++ b/lisp/emacs-lisp/lucid.el Wed Aug 13 19:39:39 1997 +0000 @@ -141,6 +141,31 @@ (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