]> git.eshelyaron.com Git - emacs.git/commitdiff
(Finding Overlays): Write better example.
authorRichard M. Stallman <rms@gnu.org>
Sun, 4 Mar 2007 18:00:37 +0000 (18:00 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 4 Mar 2007 18:00:37 +0000 (18:00 +0000)
lispref/display.texi

index 02491c422d961998f8f74648e48c1c0419dfc716..f485829725a4a57283845d7637137262801fb335 100644 (file)
@@ -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