From b4d3a882a8423e81c418fc56b7a9677f5582fcc7 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Fri, 23 Aug 2019 03:43:41 +0200 Subject: [PATCH] Enable sorting paragraphs when the final paragraph has no newline * lisp/sort.el (sort-paragraphs): Ensure that when sorting paragraphs, the final paragraph ends with a newline (bug#21785). --- lisp/sort.el | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lisp/sort.el b/lisp/sort.el index 6ea1c440605..6ceda8e448c 100644 --- a/lisp/sort.el +++ b/lisp/sort.el @@ -225,11 +225,17 @@ the sort order." (narrow-to-region beg end) (goto-char (point-min)) (sort-subr reverse - (function - (lambda () - (while (and (not (eobp)) (looking-at paragraph-separate)) - (forward-line 1)))) - 'forward-paragraph)))) + (lambda () + (while (and (not (eobp)) (looking-at paragraph-separate)) + (forward-line 1))) + (lambda () + (forward-paragraph) + ;; If the buffer doesn't end with a newline, add a + ;; newline to avoid having paragraphs being + ;; concatenated after sorting. + (when (and (eobp) + (not (bolp))) + (insert "\n"))))))) ;;;###autoload (defun sort-pages (reverse beg end) -- 2.39.5