Fix error when filling consecutive comments

* lisp/org.el (org-fill-paragraph): Do not mix consecutive comments
  when filling any of them.
* testing/lisp/test-org.el: Add test.

Thanks to Samuel Wales for reporting it.
This commit is contained in:
Nicolas Goaziou 2013-07-09 13:49:17 +02:00
parent eb37142b14
commit c78fa35252
2 changed files with 22 additions and 1 deletions

View File

@ -22287,7 +22287,21 @@ a footnote definition, try to fill the first paragraph within."
justify)))
t)
;; Fill comments.
(comment (fill-comment-paragraph justify))
(comment
(let ((begin (org-element-property :post-affiliated element))
(end (save-excursion
(goto-char (org-element-property :end element))
(skip-chars-backward " \r\t\n")
(line-end-position))))
;; Do not fill comments when at a blank line or at
;; affiliated keywords.
(when (and (>= (point) begin) (<= (point) end))
(let ((fill-prefix (save-excursion
(beginning-of-line)
(looking-at "[ \t]*#")
(concat (match-string 0) " "))))
(save-excursion
(fill-region-as-paragraph begin end justify))))))
;; Ignore every other element.
(otherwise t))))))

View File

@ -199,6 +199,13 @@
(let ((fill-column 20))
(org-fill-paragraph)
(buffer-string)))))
;; Do not mix consecutive comments when filling one of them.
(should
(equal "# A B\n\n# C"
(org-test-with-temp-text "# A\n# B\n\n# C"
(let ((fill-column 20))
(org-fill-paragraph)
(buffer-string)))))
;; Do nothing at affiliated keywords.
(org-test-with-temp-text "#+NAME: para\nSome\ntext."
(let ((fill-column 20))