From: Richard M. Stallman Date: Sun, 4 Mar 2007 18:00:37 +0000 (+0000) Subject: (Finding Overlays): Write better example. X-Git-Tag: emacs-pretest-22.0.96~282 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3de3e773a656100b1810eaf5a1b4f9d63f1469e9;p=emacs.git (Finding Overlays): Write better example. --- diff --git a/lispref/display.texi b/lispref/display.texi index 02491c422d9..f485829725a 100644 --- a/lispref/display.texi +++ b/lispref/display.texi @@ -1527,26 +1527,25 @@ end of an overlay, before @var{pos}. If there is none, it returns @code{(point-min)}. @end defun - Here's a function which uses @code{next-overlay-change} to search -for the next character which gets a given property @code{prop} from -either its overlays or its text properties (@pxref{Property Search}): + As an example, here's a simplified (and inefficient) version of the +primitive function @code{next-single-char-property-change} +(@pxref{Property Search}). It searches forward from position +@var{pos} for the next position where the value of a given property +@code{prop}, as obtained from either overlays or text properties, +changes. @smallexample -(defun find-overlay-prop (prop) +(defun next-single-char-property-change (position prop) (save-excursion - (while (and (not (eobp)) - (not (get-char-property (point) prop))) - (goto-char (min (next-overlay-change (point)) - (next-single-property-change (point) prop)))) + (goto-char position) + (let ((propval (get-char-property (point) prop))) + (while (and (not (eobp)) + (eq (get-char-property (point) prop) propval)) + (goto-char (min (next-overlay-change (point)) + (next-single-property-change (point) prop))))) (point))) @end smallexample - Now you can search for a @code{happy} property like this: - -@smallexample -(find-overlay-prop 'happy) -@end smallexample - @node Width @section Width