summaryrefslogtreecommitdiff
path: root/lisp/sort.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-08-23 03:43:41 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-08-23 03:43:41 +0200
commitb4d3a882a8423e81c418fc56b7a9677f5582fcc7 (patch)
tree3926965eb64f80ca59bc44b4de80215dcb95315a /lisp/sort.el
parentd08f7c41241e78b88bc2aaaa2dd323ce7512ae94 (diff)
downloademacs-b4d3a882a8423e81c418fc56b7a9677f5582fcc7.tar.gz
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).
Diffstat (limited to 'lisp/sort.el')
-rw-r--r--lisp/sort.el16
1 files 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)