emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/compare-w.el,v


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/compare-w.el,v
Date: Wed, 16 Aug 2006 05:04:16 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Richard M. Stallman <rms>       06/08/16 05:04:16

Index: compare-w.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/compare-w.el,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- compare-w.el        23 Feb 2006 21:41:26 -0000      1.34
+++ compare-w.el        16 Aug 2006 05:04:16 -0000      1.35
@@ -167,16 +167,14 @@
 on second call it synchronizes points by skipping the difference,
 on third call it again advances points to the next difference and so on."
   (interactive "P")
+  (if compare-ignore-whitespace
+      (setq ignore-whitespace (not ignore-whitespace)))
   (let* (p1 p2 maxp1 maxp2 b1 b2 w2
            (progress 1)
            (opoint1 (point))
            opoint2
-           (skip-func (if (if ignore-whitespace ; XOR
-                               (not compare-ignore-whitespace)
-                             compare-ignore-whitespace)
-                           (if (stringp compare-windows-whitespace)
-                               'compare-windows-skip-whitespace
-                             compare-windows-whitespace)))
+           skip-func-1
+           skip-func-2
            (sync-func (if (stringp compare-windows-sync)
                            'compare-windows-sync-regexp
                          compare-windows-sync)))
@@ -190,8 +188,19 @@
          b2 (window-buffer w2))
     (setq opoint2 p2)
     (setq maxp1 (point-max))
-    (save-excursion
-      (set-buffer b2)
+
+    (setq skip-func-1 (if ignore-whitespace
+                         (if (stringp compare-windows-whitespace)
+                             (lambda () (compare-windows-skip-whitespace)
+                               t)
+                           compare-windows-whitespace)))
+
+    (with-current-buffer b2
+      (setq skip-func-2 (if ignore-whitespace
+                           (if (stringp compare-windows-whitespace)
+                             (lambda () (compare-windows-skip-whitespace)
+                               t)
+                             compare-windows-whitespace)))
       (push-mark p2 t)
       (setq maxp2 (point-max)))
     (push-mark)
@@ -199,17 +208,16 @@
     (while (> progress 0)
       ;; If both windows have whitespace next to point,
       ;; optionally skip over it.
-      (and skip-func
+      (and skip-func-1
           (save-excursion
             (let (p1a p2a w1 w2 result1 result2)
-              (setq result1 (funcall skip-func opoint1))
+              (setq result1 (funcall skip-func-1 opoint1))
               (setq p1a (point))
               (set-buffer b2)
               (goto-char p2)
-              (setq result2 (funcall skip-func opoint2))
+              (setq result2 (funcall skip-func-2 opoint2))
               (setq p2a (point))
-              (if (or (stringp compare-windows-whitespace)
-                      (and result1 result2 (eq result1 result2)))
+              (if (and result1 result2 (eq result1 result2))
                   (setq p1 p1a
                         p2 p2a)))))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]