Mercurial > hg > xemacs-beta
diff lisp/extents.el @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | 3ecd8885ac67 |
children | 0d43872986b6 |
line wrap: on
line diff
--- a/lisp/extents.el Mon Aug 13 11:33:40 2007 +0200 +++ b/lisp/extents.el Mon Aug 13 11:35:02 2007 +0200 @@ -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 @@ 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 @@ 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."