depth] enum-list
.nr list-indent-stack\n[list-depth] 3n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-bullet" \{\
.ds list-type-stack\n[list-depth] bullet-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-dash" \{\
.ds list-type-stack\n[list-depth] dash-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-hyphen" \{\
.ds list-type-stack\n[list-depth] dash-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-inset" \{\
.ds list-type-stack\n[list-depth] inset-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-diag" \{\
.ds list-type-stack\n[list-depth] diag-list
.\}
.el \{ .ie "\$1"-ohang" \{\
.ds list-type-stack\n[list-depth] ohang-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-column" \{\
.ds list-type-stack\n[list-depth] column-list
.linetabs 1
.\}
.el \{\
.tm1 "mdoc warning: Unknown list type `\$1' (or missing list type)
.tm1 "              in .Bl macro
.tm
.nr arg-ptr 0
.\}\}\}\}\}\}\}\}\}\}\}
.if !\n[arg-ptr] \{\
.Bl-usage
.reset-args
.nr list-depth -1
.return
.\}
.shift
.nr reg-Bl 1
.while (\n[reg-Bl] <= \n[.$]) \{\
.ds arg\n[reg-Bl] "\$[\n[reg-Bl]]
.nr type\n[reg-Bl] 0
.ds space\n[reg-Bl]
.nr reg-Bl +1
.\}
.increment-list-stack
.if \n[.$] \{\
.nr arg-limit \n[.$]
.nr arg-ptr 0
.do-Bl-args
.in +\n[list-offset-stack\n[list-depth]]u
.if "\*[list-type-stack\n[list-depth]]"column-list" \{\
.set-column-tab \n[num-columns]
'      in -\n[column-indent-width]u
.if !\n[compact-list-stack\n[list-depth]] \
.sp \n[display-vertical]u
.nf
.nr num-columns 0
.\}\}
.reset-args
..
.de Bl-usage
.tm1 "Usage: .Bl {-hang | -ohang | -tag | -diag | -inset}
.tm1 "             [-width <string>]
.tm1 "             [-offset <string>] [-compact]
.tm1 "       .Bl -column [-offset <string>] <string1> <string2> ...
.tm1 "       .Bl {-item | -enum [-nested] | -bullet | -hyphen | -dash}
.tm1 "             [-offset <string>] [-compact] (#\n[.c])
..
.de do-Bl-args
.nr arg-ptr +1
.if (\n[arg-limit] < \n[arg-ptr]) \
.return
.nr reg-dBla (\n[arg-ptr] + 1)
.if !d arg\n[reg-dBla] \
.ds arg\n[reg-dBla]
.nr reg-dBla 1
.ie        "\*[arg\n[arg-ptr]]"-compact" \
.nr compact-list-stack\n[list-depth] 1
.el \{ .ie "\*[arg\n[arg-ptr]]"-nested" \{\
.ie (\n[list-depth] > 1) \{\
.nr reg-dBla1 (\n[list-depth] - 1)
.ds tag-prefix-stack\n[list-depth] "\*[tag-prefix-stack\n[reg-dBla1]]
.as tag-prefix-stack\n[list-depth] \n[enum-list-count-stack\n[reg-dBla1]].
.length reg-dBla1 "\*[tag-prefix-stack\n[list-depth]]
.nr list-indent-stack\n[list-depth] +\n[reg-dBla1]n
.\}
.el \
.tm mdoc warning: `-nested' allowed with nested .Bl macros only (#\n[.c])
.\}
.el \{ .ie "\*[arg\n[arg-ptr]]"-width" \{\
.nr arg-ptr +1
.ds tag-width-stack\n[list-depth] TagwidtH
.ds str-dBla "\*[arg\n[arg-ptr]]
.substring str-dBla 0 0
.ie 