diff options
author | Marco Wahl <marcowahlsoft@gmail.com> | 2017-01-17 22:59:48 +0100 |
---|---|---|
committer | Marco Wahl <marcowahlsoft@gmail.com> | 2017-01-17 23:06:56 +0100 |
commit | 69b22b6590357ab0bdd8a90793b2322d4a789bbd (patch) | |
tree | 13ba02cc594b908e6edefcb873bf2e482fd335a6 | |
parent | 738d3b4def3e857f4d4b2ca94c11cf1f01c840ca (diff) | |
download | org-mode-69b22b6590357ab0bdd8a90793b2322d4a789bbd.tar.gz |
org: Improved consistency + tests
* lisp/org.el (org-get-valid-level): The function now returns 1 for
parameters level=0, change=1 and `org-odd-levels-only'=t. Before
it returned 3.
-rw-r--r-- | lisp/org.el | 11 | ||||
-rw-r--r-- | testing/lisp/test-org.el | 29 |
2 files changed, 35 insertions, 5 deletions
diff --git a/lisp/org.el b/lisp/org.el index 2a38040..c8efe24 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -8262,13 +8262,14 @@ time to headlines when structure editing, based on the value of (if org-odd-levels-only 2 1)) (defun org-get-valid-level (level &optional change) - "Rectify a level change under the influence of `org-odd-levels-only' -LEVEL is a current level, CHANGE is by how much the level should be -modified. Even if CHANGE is nil, LEVEL may be returned modified because -even level numbers will become the next higher odd number." + "Rectify a level change under the influence of `org-odd-levels-only'. +LEVEL is a current level, CHANGE is by how much the level should +be modified. Even if CHANGE is nil, LEVEL may be returned +modified because even level numbers will become the next higher +odd number. Returns values greater than 0." (if org-odd-levels-only (cond ((or (not change) (= 0 change)) (1+ (* 2 (/ level 2)))) - ((> change 0) (1+ (* 2 (/ (+ level (* 2 change)) 2)))) + ((> change 0) (1+ (* 2 (/ (+ (1- level) (* 2 change)) 2)))) ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2)))))) (max 1 (+ level (or change 0))))) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 014b68a..1de9bf0 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -3786,6 +3786,35 @@ Text. (forward-line) (org-get-indentation))))) +(ert-deftest test-org/org-get-valid-level () + "Test function `org-get-valid-level' specifications." + (let ((org-odd-levels-only nil)) + (should (equal 1 (org-get-valid-level 0 0))) + (should (equal 1 (org-get-valid-level 0 1))) + (should (equal 2 (org-get-valid-level 0 2))) + (should (equal 3 (org-get-valid-level 0 3))) + (should (equal 1 (org-get-valid-level 1 0))) + (should (equal 2 (org-get-valid-level 1 1))) + (should (equal 23 (org-get-valid-level 1 22))) + (should (equal 1 (org-get-valid-level 1 -1))) + (should (equal 1 (org-get-valid-level 2 -1)))) + (let ((org-odd-levels-only t)) + (should (equal 1 (org-get-valid-level 0 0))) + (should (equal 1 (org-get-valid-level 0 1))) + (should (equal 3 (org-get-valid-level 0 2))) + (should (equal 5 (org-get-valid-level 0 3))) + (should (equal 1 (org-get-valid-level 1 0))) + (should (equal 3 (org-get-valid-level 1 1))) + (should (equal 3 (org-get-valid-level 2 1))) + (should (equal 5 (org-get-valid-level 3 1))) + (should (equal 5 (org-get-valid-level 4 1))) + (should (equal 43 (org-get-valid-level 1 21))) + (should (equal 1 (org-get-valid-level 1 -1))) + (should (equal 1 (org-get-valid-level 2 -1))) + (should (equal 1 (org-get-valid-level 3 -1))) + (should (equal 3 (org-get-valid-level 4 -1))) + (should (equal 3 (org-get-valid-level 5 -1))))) + ;;; Planning |