Function: org-num--current-numbering
org-num--current-numbering is a byte-compiled function defined in
org-num.el.gz.
Signature
(org-num--current-numbering LEVEL SKIP)
Documentation
Return numbering for current headline.
LEVEL is headline's level, and SKIP its skip value. Return nil if headline should be skipped.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-num.el.gz
(defun org-num--current-numbering (level skip)
"Return numbering for current headline.
LEVEL is headline's level, and SKIP its skip value. Return nil
if headline should be skipped."
(cond
;; Skipped by inheritance.
((and org-num--skip-level (> level org-num--skip-level)) nil)
;; Skipped by a non-nil skip value; set `org-num--skip-level'
;; to skip the whole sub-tree later on.
(skip (setq org-num--skip-level level) nil)
(t
(setq org-num--skip-level nil)
;; Compute next numbering, and update `org-num--numbering'.
(let ((last-level (length org-num--numbering)))
(setq org-num--numbering
(cond
;; First headline : nil => (1), or (1 0)...
((null org-num--numbering) (cons 1 (make-list (1- level) 0)))
;; Sibling: (1 1) => (2 1).
((= level last-level)
(cons (1+ (car org-num--numbering)) (cdr org-num--numbering)))
;; Parent: (1 1 1) => (2 1), or (2).
((< level last-level)
(let ((suffix (nthcdr (- last-level level) org-num--numbering)))
(cons (1+ (car suffix)) (cdr suffix))))
;; Child: (1 1) => (1 1 1), or (1 0 1 1)...
(t
(append (cons 1 (make-list (- level last-level 1) 0))
org-num--numbering))))))))