From: Glenn Morris Date: Tue, 25 Oct 2005 07:33:34 +0000 (+0000) Subject: (diary-list-entries): Prevent infloop when diary does not end in a X-Git-Tag: emacs-pretest-22.0.90~6302 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f77b652537e427472e24a0ba92c547373958e46f;p=emacs.git (diary-list-entries): Prevent infloop when diary does not end in a newline. Do not assume a blank line at the start of the diary file. --- diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index ae42fa98661..896f0755ad8 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -439,10 +439,20 @@ If LIST-ONLY is non-nil don't modify or display the buffer, only return a list." date-start temp) (re-search-backward "\^M\\|\n\\|\\`") (setq date-start (point)) - (re-search-forward "\^M\\|\n" nil t 2) + ;; When selective display (rather than + ;; overlays) was used, diary file used to + ;; start in a blank line and end in a + ;; newline. Now that neither of these + ;; need be true, 'move handles the latter + ;; and 1/2 kludge the former. + (re-search-forward + "\^M\\|\n" nil 'move + (if (and (bobp) (not (looking-at "\^M\\|\n"))) + 1 + 2)) (while (looking-at " \\|\^I") - (re-search-forward "\^M\\|\n" nil t)) - (backward-char 1) + (re-search-forward "\^M\\|\n" nil 'move)) + (unless (eobp) (backward-char 1)) (unless list-only (remove-overlays date-start (point) 'invisible 'diary))