forked from mirrors/org-mode
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.
This commit is contained in:
parent
738d3b4def
commit
69b22b6590
11
lisp/org.el
11
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)))))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue