]> git.eshelyaron.com Git - emacs.git/commitdiff
Prevent an infinite loop in todo-mode (bug#66994)
authorStephen Berman <stephen.berman@gmx.net>
Wed, 8 Nov 2023 23:13:06 +0000 (00:13 +0100)
committerStephen Berman <stephen.berman@gmx.net>
Wed, 8 Nov 2023 23:13:06 +0000 (00:13 +0100)
* lisp/calendar/todo-mode.el (todo-item-start): Moving an item to
a todo file (with `C-u m') that had not yet been read into a
buffer puts point at the beginning of the file, from where it is
impossible to reach todo-item-start by this function, so don't try
in that case.

lisp/calendar/todo-mode.el

index ad18e8f035ea359290b770a2e6c5f2ca9fa4acd7..393dd1851f3551c5af1023d474aaf99500f4f597 100644 (file)
@@ -5240,7 +5240,12 @@ changes you have made in the order of the categories.
            ;; Point is on done items separator.
            (save-excursion (beginning-of-line) (looking-at todo-category-done))
           ;; Buffer is widened.
-          (looking-at (regexp-quote todo-category-beg)))
+          (looking-at (regexp-quote todo-category-beg))
+           ;; Moving an item to a todo file (with `C-u m') that had
+           ;; not yet been read into a buffer puts point at the
+           ;; beginning of the file, from where it is impossible to
+           ;; reach todo-item-start by the loop below (bug#66994).
+          (= (point) 1))
     (goto-char (line-beginning-position))
     (while (not (looking-at todo-item-start))
       (forward-line -1))