X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fextents.el;h=4647b44125204eea493e0a09fb9c967ad0cb475d;hb=840b3ca72f743a8d911f146d3f47f3a78e8436a3;hp=37f0752caa9dba2be059b2cc2f75542a2f534869;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/extents.el b/lisp/extents.el index 37f0752..4647b44 100644 --- a/lisp/extents.el +++ b/lisp/extents.el @@ -1,6 +1,7 @@ ;;; 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 @@ -25,7 +26,10 @@ ;;; 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: @@ -53,7 +57,7 @@ PREDICATE or FUNCTION. See also `map-extents'." 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 @@ -65,11 +69,28 @@ are included in the list. FROM and TO default to the beginning and 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."