emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/iedit 83c037d678 156/301: Fix infinite loop problem in ied


From: ELPA Syncer
Subject: [nongnu] elpa/iedit 83c037d678 156/301: Fix infinite loop problem in iedit-rect-mode
Date: Mon, 10 Jan 2022 22:58:59 -0500 (EST)

branch: elpa/iedit
commit 83c037d678956dde584b77bbca698e6a74cedbdb
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>

    Fix infinite loop problem in iedit-rect-mode
    Also add a new test case
---
 iedit-rect.el  | 33 ++++++++++++++++++---------------
 iedit-tests.el | 10 ++++++++--
 2 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/iedit-rect.el b/iedit-rect.el
index 9a662079ca..83eae808d3 100644
--- a/iedit-rect.el
+++ b/iedit-rect.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2010, 2011, 2012 Victor Ren
 
-;; Time-stamp: <2013-01-18 17:24:41 Victor Ren>
+;; Time-stamp: <2013-02-04 01:35:54 Victor Ren>
 ;; Author: Victor Ren <victorhge@gmail.com>
 ;; Keywords: occurrence region simultaneous rectangle refactoring
 ;; Version: 0.97
@@ -116,21 +116,24 @@ Commands:
       (when (< end-col beg-col)
         (rotatef beg-col end-col))
       (goto-char beg)
-      (loop do (progn
-                 (push (iedit-make-occurrence-overlay
-                        (progn
-                          (move-to-column beg-col t)
-                          (point))
-                        (progn
-                          (move-to-column end-col t)
-                          (point)))
-                       iedit-occurrences-overlays)
-                 (forward-line 1))
-            until (> (point) end))))
+      (while
+          (progn
+            (push (iedit-make-occurrence-overlay
+                   (progn
+                     (move-to-column beg-col t)
+                     (point))
+                   (progn
+                     (move-to-column end-col t)
+                     (point)))
+                  iedit-occurrences-overlays)
+            (and (< (point) end) (forward-line 1))))))
   (setq iedit-rectangle (list beg end))
-  (setq iedit-rectangle-mode (propertize
-                    (concat " Iedit-rect:" (number-to-string (length 
iedit-occurrences-overlays)))
-                    'face 'font-lock-warning-face))
+  (setq iedit-rectangle-mode
+        (propertize
+         (concat " Iedit-rect:"
+                 (number-to-string (length iedit-occurrences-overlays)))
+         'face
+         'font-lock-warning-face))
   (force-mode-line-update)
   (add-hook 'kbd-macro-termination-hook 'iedit-rectangle-done nil t)
   (add-hook 'change-major-mode-hook 'iedit-rectangle-done nil t)
diff --git a/iedit-tests.el b/iedit-tests.el
index 12511f7955..046352b1e5 100644
--- a/iedit-tests.el
+++ b/iedit-tests.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2010, 2011, 2012 Victor Ren
 
-;; Time-stamp: <2013-01-19 22:18:17 Victor Ren>
+;; Time-stamp: <2013-02-01 00:10:47 Victor Ren>
 ;; Author: Victor Ren <victorhge@gmail.com>
 ;; Version: 0.97
 ;; X-URL: http://www.emacswiki.org/emacs/Iedit
@@ -473,7 +473,13 @@ fob")))))
      (forward-char 3)
      (forward-line 3)
      (call-interactively 'iedit-rectangle-mode)
-     (should (equal (marker-position-list iedit-rectangle) '(1 19))))))
+     (should (equal (marker-position-list iedit-rectangle) '(1 19)))
+     (call-interactively 'iedit-rectangle-mode)
+     (goto-char (point-min))
+     (set-mark-command nil)
+     (goto-char (point-max))
+     (call-interactively 'iedit-rectangle-mode)
+     (should (equal (marker-position-list iedit-rectangle) '(1 33))))))
 
 (ert-deftest iedit-kill-rectangle-error-test ()
   (with-iedit-test-fixture



reply via email to

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