Ensure forward progress in bibtex-map-entries

* lisp/textmodes/bibtex.el (bibtex-map-entries): Ensure forward
progress (bug#55036).
This commit is contained in:
Lars Ingebrigtsen 2022-04-20 13:07:34 +02:00
parent c2dc6db2fd
commit c32e8b33f4

View file

@ -2298,11 +2298,17 @@ is non-nil, FUN is not called for @String entries."
(set-marker-insertion-type end-marker t) (set-marker-insertion-type end-marker t)
(save-excursion (save-excursion
(goto-char (point-min)) (goto-char (point-min))
(while (setq found (bibtex-skip-to-valid-entry)) (let ((prev (point)))
(set-marker end-marker (cdr found)) (while (setq found (bibtex-skip-to-valid-entry))
(looking-at bibtex-any-entry-maybe-empty-head) ;; If we have invalid entries, ensure that we have forward
(funcall fun (bibtex-key-in-head "") (car found) end-marker) ;; progress so that we don't infloop.
(goto-char end-marker))))) (if (= (point) prev)
(forward-line 1)
(setq prev (point))
(set-marker end-marker (cdr found))
(looking-at bibtex-any-entry-maybe-empty-head)
(funcall fun (bibtex-key-in-head "") (car found) end-marker)
(goto-char end-marker)))))))
(defun bibtex-progress-message (&optional flag interval) (defun bibtex-progress-message (&optional flag interval)
"Echo a message about progress of current buffer. "Echo a message about progress of current buffer.