[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 9685774: Fix infinite loop in vc-dir-mark-unmark
From: |
Charles A. Roelli |
Subject: |
[Emacs-diffs] master 9685774: Fix infinite loop in vc-dir-mark-unmark |
Date: |
Mon, 18 Dec 2017 14:52:59 -0500 (EST) |
branch: master
commit 9685774e38dc6f5670c8e57dc9f49335f4f738b6
Author: Charles A. Roelli <address@hidden>
Commit: Charles A. Roelli <address@hidden>
Fix infinite loop in vc-dir-mark-unmark
* lisp/vc/vc-dir.el (vc-dir-mark-unmark): Prevent from getting
stuck on the same line in an infinite loop. (Bug#24017)
---
lisp/vc/vc-dir.el | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 41c44e2..52c7d3e 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -554,11 +554,15 @@ If a prefix argument is given, move by that many lines."
(defun vc-dir-mark-unmark (mark-unmark-function)
(if (use-region-p)
- (let (;; (firstl (line-number-at-pos (region-beginning)))
+ (let ((processed-line nil)
(lastl (line-number-at-pos (region-end))))
(save-excursion
(goto-char (region-beginning))
- (while (<= (line-number-at-pos) lastl)
+ (while (and (<= (line-number-at-pos) lastl)
+ ;; We make sure to not get stuck processing the
+ ;; same line in an infinite loop.
+ (not (eq processed-line (line-number-at-pos))))
+ (setq processed-line (line-number-at-pos))
(condition-case nil
(funcall mark-unmark-function)
;; `vc-dir-mark-file' signals an error if we try marking
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 9685774: Fix infinite loop in vc-dir-mark-unmark,
Charles A. Roelli <=