;;; extents.el --- miscellaneous extent functions not written in C
;; Copyright (C) 1993-4, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 2000 Ben Wing.
;; Keywords: internal, dumped
;;; Commentary:
-;; some help from stig@hackvan.com here.
+;;; Authorship:
+
+;; Created 1995 Ben Wing.
+;; mapcar-extents (and extent-list?) from stig@hackvan.com, c. 1996.
;;; Code:
buffer-or-string from to nil flags property value)
(nreverse *result*)))
-(defun extent-list (&optional buffer-or-string from to flags)
+(defun extent-list (&optional buffer-or-string from to flags property value)
"Return a list of the extents in BUFFER-OR-STRING.
BUFFER-OR-STRING defaults to the current buffer if omitted.
FROM and TO can be used to limit the range over which extents are
end of BUFFER-OR-STRING, respectively.
FLAGS controls how end cases are treated. For a discussion of this,
-and exactly what ``overlap'' means, see `map-extents'.
+and exactly what ``overlap'' means, see `map-extents'. PROPERTY and VALUE
+are also as in `map-extents'.
If you want to map a function over the extents in a buffer or string,
-consider using `map-extents' or `mapcar-extents' instead."
- (mapcar-extents 'identity nil buffer-or-string from to flags))
+consider using `map-extents' or `mapcar-extents' instead.
+
+See also `extents-at'."
+ (mapcar-extents 'identity nil buffer-or-string from to flags property value))
+
+(defun extent-at-event (event &optional property before at-flag)
+ "Return the smallest extent under EVENT, if any.
+PROPERTY, BEFORE, and AT-FLAG are as in `extent-at'."
+ (let* ((win (event-window event))
+ (p (event-point event)))
+ (and win p (extent-at p (window-buffer win) property before at-flag))))
+
+(defun extents-at-event (event &optional property before at-flag)
+ "Return a list of all extents under EVENT.
+PROPERTY, BEFORE, and AT-FLAG are as in `extent-at'."
+ (let* ((win (event-window event))
+ (p (event-point event)))
+ (and win p (extents-at p (window-buffer win) property before at-flag))))
(defun extent-string (extent)
"Return the string delimited by the bounds of EXTENT."