diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-11-13 15:46:33 +0100 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-11-13 15:46:33 +0100 |
commit | 0421be2cee10e9c00510f776f90e1d21297edde3 (patch) | |
tree | 205b53bcca2ecdfbe162d76041cb6260835e1519 | |
parent | 6d099eedc87cf255618308d96add29f48e624492 (diff) | |
parent | 5dbccdb432a6cae66f0866a30379a352873ed15e (diff) | |
download | org-mode-0421be2cee10e9c00510f776f90e1d21297edde3.tar.gz |
Merge branch 'maint'
-rw-r--r-- | lisp/org-list.el | 4 | ||||
-rw-r--r-- | testing/lisp/test-org-list.el | 87 |
2 files changed, 90 insertions, 1 deletions
diff --git a/lisp/org-list.el b/lisp/org-list.el index d97e8b4..1887bab 100644 --- a/lisp/org-list.el +++ b/lisp/org-list.el @@ -1230,7 +1230,9 @@ some heuristics to guess the result." ;; Are there blank lines inside the list so far? ((save-excursion (goto-char (org-list-get-top-point struct)) - (org-list-search-forward + ;; Do not use `org-list-search-forward' so blank lines + ;; in blocks can be counted in. + (re-search-forward "^[ \t]*$" (org-list-get-item-end-before-blank item struct) t)) 1) ;; Default choice: no blank line. diff --git a/testing/lisp/test-org-list.el b/testing/lisp/test-org-list.el index d57ebc9..5e9cab0 100644 --- a/testing/lisp/test-org-list.el +++ b/testing/lisp/test-org-list.el @@ -626,6 +626,93 @@ (search-forward "Text1") (should (org-invisible-p2)))) +(ert-deftest test-org-list/insert-item () + "Test item insertion." + ;; Blank lines specifications. + ;; + ;; Non-nil `org-blank-before-new-entry': insert a blank line, unless + ;; `org-empty-line-terminates-plain-lists' is non-nil. + (should + (org-test-with-temp-text "- a" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . t)))) + (end-of-line) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + (should-not + (org-test-with-temp-text "- a" + (let ((org-empty-line-terminates-plain-lists t) + (org-blank-before-new-entry '((plain-list-item . t)))) + (end-of-line) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + ;; Nil `org-blank-before-new-entry': do not insert a blank line. + (should-not + (org-test-with-temp-text "- a" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . nil)))) + (end-of-line) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + ;; `org-blank-before-new-entry' set to auto: if there's no blank + ;; line already in the sole item, do not insert one. + (should-not + (org-test-with-temp-text "- a" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (end-of-line) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + ;; `org-blank-before-new-entry' set to `auto': if there's a blank + ;; line in the sole item, insert another one. + (should + (org-test-with-temp-text "- a\n\n b" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (goto-char (point-max)) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + ;; `org-blank-before-new-entry' set to `auto': if the user specified + ;; a blank line, preserve it. + (should + (org-test-with-temp-text "- a\n\n" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (goto-char (point-max)) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + ;; `org-blank-before-new-entry' set to `auto': if some items in list + ;; are already separated by blank lines, insert one. + (should + (org-test-with-temp-text "- a\n\n- b" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (goto-char (point-max)) + (org-insert-item) + (forward-line -1) + (looking-at "$")))) + (should + (org-test-with-temp-text "- a\n\n- b" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (org-insert-item) + (forward-line) + (looking-at "$")))) + (should + (org-test-with-temp-text "- a\n #+BEGIN_EXAMPLE\n\n x\n #+END_EXAMPLE" + (let ((org-empty-line-terminates-plain-lists nil) + (org-blank-before-new-entry '((plain-list-item . auto)))) + (goto-char (point-max)) + (org-insert-item) + (forward-line -1) + (looking-at "$"))))) + (provide 'test-org-list) ;;; test-org-list.el ends here |