# HG changeset patch # User Richard M. Stallman # Date 1173031237 0 # Node ID fec7d780a7865bbe7e4c4d956448376dea744cc8 # Parent 656132bca5c05009830a1a563944fc651adf324d (Finding Overlays): Write better example. diff -r 656132bca5c0 -r fec7d780a786 lispref/display.texi --- a/lispref/display.texi Sun Mar 04 17:55:23 2007 +0000 +++ b/lispref/display.texi Sun Mar 04 18:00:37 2007 +0000 @@ -1527,26 +1527,25 @@ @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