changeset 4925:76fb8b35df3f

(compare-windows-skip-whitespace): Return t if there is whitespace before point.
author Richard M. Stallman <rms@gnu.org>
date Sun, 07 Nov 1993 22:19:57 +0000
parents fb527936ca61
children c639a86ac9f1
files lisp/compare-w.el
diffstat 1 files changed, 16 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/compare-w.el	Sun Nov 07 21:23:36 1993 +0000
+++ b/lisp/compare-w.el	Sun Nov 07 22:19:57 1993 +0000
@@ -134,19 +134,29 @@
 ;; and find the latest point at which a match ends.
 ;; Don't try starting points before START, though.
 ;; Value is non-nil if whitespace is found.
+
+;; If there is whitespace before point, but none after,
+;; then return t, but don't advance point.
 (defun compare-windows-skip-whitespace (start)
   (let ((end (point))
+	(beg (point))
 	(opoint (point)))
-    (while (and (looking-at compare-windows-whitespace)
-		(<= end (match-end 0))
-		;; This match goes past END, so advance END.
-		(progn (setq end (match-end 0))
-		       (> (point) start)))
+    (while (or (and (/= (point) start)
+		    ;; Consider at least the char before point,
+		    ;; unless it is also before START.
+		    (= (point) opoint))
+	       (and (looking-at compare-windows-whitespace)
+		    (<= end (match-end 0))
+		    ;; This match goes past END, so advance END.
+		    (progn (setq end (match-end 0))
+			   (> (point) start))))
       ;; keep going back until whitespace
       ;; doesn't extend to or past end
       (forward-char -1))
+    (setq beg (point))
     (goto-char end)
-    (/= end opoint)))
+    (or (/= beg opoint)
+	(/= end opoint))))
 
 (provide 'compare-w)