summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2001-04-06 06:40:12 +0000
committerwlemb <wlemb>2001-04-06 06:40:12 +0000
commit9e2d9888314d003eeece891ed6920e82de045e34 (patch)
tree90da0f6e79d65e7ba3ca4d14b5fd320d196ac95a
parent56da562cadf86527bd9794240398be96f83b062e (diff)
downloadgroff-9e2d9888314d003eeece891ed6920e82de045e34.tar.gz
Fixes from Ruslan. See ChangeLog.
-rw-r--r--tmac/doc-common4
-rw-r--r--tmac/doc.tmac133
-rw-r--r--tmac/groff_mdoc.man25
3 files changed, 66 insertions, 96 deletions
diff --git a/tmac/doc-common b/tmac/doc-common
index a20f6cdf..19c246ec 100644
--- a/tmac/doc-common
+++ b/tmac/doc-common
@@ -938,6 +938,7 @@
. nr doc-reg-Rd 1
. while (\n[doc-reg-Rd] <= \n[doc-list-depth]) \{\
. tm doc-list-type-stack\n[doc-reg-Rd] == `\*[doc-list-type-stack\n[doc-reg-Rd]]'
+. tm doc-list-have-indent-stack\n[doc-reg-Rd] == \n[doc-list-have-indent-stack\n[doc-reg-Rd]]
. tm doc-list-indent-stack\n[doc-reg-Rd] == \n[doc-list-indent-stack\n[doc-reg-Rd]]
. tm doc-compact-list-stack\n[doc-reg-Rd] == \n[doc-compact-list-stack\n[doc-reg-Rd]]
. tm doc-tag-prefix-stack\n[doc-reg-Rd] == `\*[doc-tag-prefix-stack\n[doc-reg-Rd]]'
@@ -947,14 +948,11 @@
. nr doc-reg-Rd +1
. \}
.
-. tm doc-have-indent == \n[doc-have-indent]
. tm doc-saved-Pa-font == `\*[doc-saved-Pa-font]'
. tm doc-curr-type == \n[doc-curr-type]
. tm doc-curr-arg == `\*[doc-curr-arg]'
-. tm doc-have-diag-list == \n[doc-have-diag-list]
. tm doc-diag-list-input-line-count == \n[doc-diag-list-input-line-count]
. tm doc-num-columns == \n[doc-num-columns]
-. tm doc-next-list-depth == \n[doc-next-list-depth]
. tm doc-column-indent-width == \n[doc-column-indent-width]
. tm doc-is-func == \n[doc-is-func]
. tm doc-have-old-func == \n[doc-have-old-func]
diff --git a/tmac/doc.tmac b/tmac/doc.tmac
index 14f2c1fc..861c74b4 100644
--- a/tmac/doc.tmac
+++ b/tmac/doc.tmac
@@ -2891,10 +2891,13 @@
.nr doc-list-indent-stack1 0
.
.
-.\" NS doc-have-indent global register (bool)
+.\" NS doc-list-have-indent-stackXXX global register (bool)
.\" NS an indentation value is active
+.\" NS
+.\" NS limit:
+.\" NS doc-list-depth
.
-.nr doc-have-indent 0
+.nr doc-list-have-indent-stack1 0
.
.
.\" NS Bl user macro
@@ -2905,9 +2908,8 @@
.\" NS modifies:
.\" NS doc-arg-ptr
.\" NS doc-argXXX
-.\" NS doc-have-diag-list
.\" NS doc-list-depth
-.\" NS doc-have-indent
+.\" NS doc-list-have-indent-stackXXX
.\" NS doc-list-indent-stackXXX
.\" NS doc-list-type-stackXXX
.\" NS doc-macro-name
@@ -2930,47 +2932,46 @@
. ie "\$1"-hang" \{\
. ds doc-list-type-stack\n[doc-list-depth] hang-list
. nr doc-list-indent-stack\n[doc-list-depth] 6n
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-tag" \{\
. ds doc-list-type-stack\n[doc-list-depth] tag-list
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-item" \{\
. ds doc-list-type-stack\n[doc-list-depth] item-list
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-enum" \{\
. ds doc-list-type-stack\n[doc-list-depth] enum-list
. nr doc-list-indent-stack\n[doc-list-depth] 3n
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-bullet" \{\
. ds doc-list-type-stack\n[doc-list-depth] bullet-list
. nr doc-list-indent-stack\n[doc-list-depth] 2n
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-dash" \{\
. ds doc-list-type-stack\n[doc-list-depth] dash-list
. nr doc-list-indent-stack\n[doc-list-depth] 2n
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-hyphen" \{\
. ds doc-list-type-stack\n[doc-list-depth] dash-list
. nr doc-list-indent-stack\n[doc-list-depth] 2n
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-inset" \{\
. ds doc-list-type-stack\n[doc-list-depth] inset-list
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-diag" \{\
. ds doc-list-type-stack\n[doc-list-depth] diag-list
-. nr doc-have-diag-list 1
. \}
. el \{ .ie "\$1"-ohang" \{\
. ds doc-list-type-stack\n[doc-list-depth] ohang-list
-. nr doc-have-indent 1
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
. \}
. el \{ .ie "\$1"-column" \{\
. ds doc-list-type-stack\n[doc-list-depth] column-list
@@ -2987,6 +2988,7 @@
. if !\n[doc-arg-ptr] \{\
. doc-Bl-usage
. doc-reset-args
+. nr doc-list-depth -1
. return
. \}
.
@@ -3006,10 +3008,11 @@
. nr doc-arg-ptr 0
. doc-do-Bl-args
.
+. in +\n[doc-list-offset-stack\n[doc-list-depth]]u
+.
. \" initialize column list
. if "\*[doc-list-type-stack\n[doc-list-depth]]"column-list" \{\
. doc-set-column-tab \n[doc-num-columns]
-. nr doc-list-indent-stack\n[doc-list-depth] 0
' in -\n[doc-column-indent-width]u
. if !\n[doc-compact-list-stack\n[doc-list-depth]] \
. sp \n[doc-display-vertical]u
@@ -3282,6 +3285,7 @@
. nr doc-reg-dsgv 1
. while (\n[doc-reg-dsgv] <= \n[doc-list-depth]) \{\
. ds doc-list-type-stack\n[doc-reg-dsgv]-saved "\*[doc-list-type-stack\n[doc-reg-dsgv]]
+. nr doc-list-have-indent-stack\n[doc-reg-dsgv]-saved \n[doc-list-have-indent-stack\n[doc-reg-dsgv]]
. nr doc-list-indent-stack\n[doc-reg-dsgv]-saved \n[doc-list-indent-stack\n[doc-reg-dsgv]]
. nr doc-compact-list-stack\n[doc-reg-dsgv]-saved \n[doc-compact-list-stack\n[doc-reg-dsgv]]
. ds doc-tag-prefix-stack\n[doc-reg-dsgv]-saved "\*[doc-tag-prefix-stack\n[doc-reg-dsgv]]
@@ -3291,14 +3295,11 @@
. nr doc-reg-dsgv +1
. \}
.
-. nr doc-have-indent-saved \n[doc-have-indent]
. ds doc-saved-Pa-font-saved "\*[doc-saved-Pa-font]
. nr doc-curr-type-saved \n[doc-curr-type]
. ds doc-curr-arg-saved "\*[doc-curr-arg]
-. nr doc-have-diag-list-saved \n[doc-have-diag-list]
. nr doc-diag-list-input-line-count-saved \n[doc-diag-list-input-line-count]
. nr doc-num-columns-saved \n[doc-num-columns]
-. nr doc-next-list-depth-saved \n[doc-next-list-depth]
. nr doc-column-indent-width-saved \n[doc-column-indent-width]
. nr doc-is-func-saved \n[doc-is-func]
. nr doc-have-old-func-saved \n[doc-have-old-func]
@@ -3400,6 +3401,7 @@
. nr doc-reg-drgv 0
. while (\n[doc-reg-drgv] <= \n[doc-display-depth]) \{\
. ds doc-display-type-stack\n[doc-reg-drgv] "\*[doc-display-type-stack\n[doc-reg-drgv]-saved]
+. nr doc-display-have-indent-stack\n[doc-reg-drgv] \n[doc-display-have-indent-stack\n[doc-reg-drgv]-saved]
. nr doc-display-indent-stack\n[doc-reg-drgv] \n[doc-display-indent-stack\n[doc-reg-drgv]-saved]
. nr doc-display-ad-stack\n[doc-reg-drgv] \n[doc-display-ad-stack\n[doc-reg-drgv]-saved]
. nr doc-display-fi-stack\n[doc-reg-drgv] \n[doc-display-fi-stack\n[doc-reg-drgv]-saved]
@@ -3429,14 +3431,11 @@
. nr doc-reg-drgv +1
. \}
.
-. nr doc-have-indent \n[doc-have-indent-saved]
. ds doc-saved-Pa-font "\*[doc-saved-Pa-font-saved]
. nr doc-curr-type \n[doc-curr-type-saved]
. ds doc-curr-arg "\*[doc-curr-arg-saved]
-. nr doc-have-diag-list \n[doc-have-diag-list-saved]
. nr doc-diag-list-input-line-count \n[doc-diag-list-input-line-count-saved]
. nr doc-num-columns \n[doc-num-columns-saved]
-. nr doc-next-list-depth \n[doc-next-list-depth-saved]
. nr doc-column-indent-width \n[doc-column-indent-width-saved]
. nr doc-is-func \n[doc-is-func-saved]
. nr doc-have-old-func \n[doc-have-old-func-saved]
@@ -3499,7 +3498,6 @@
.\" NS end list
.\" NS
.\" NS modifies:
-.\" NS doc-have-diag-list
.\" NS doc-list-depth
.\" NS doc-macro-name
.\" NS
@@ -3517,10 +3515,8 @@
. ds doc-macro-name El
. ds doc-str-El \*[doc-list-type-stack\n[doc-list-depth]]
.
-. ie "\*[doc-str-El]"diag-list" \{\
-. nr doc-have-diag-list 0
+. ie "\*[doc-str-El]"diag-list" \
. doc-end-list 0
-. \}
. el \{ .ie "\*[doc-str-El]"column-list" \
. doc-end-column-list
. el \{ .ie "\*[doc-str-El]"item-list" \
@@ -3836,14 +3832,6 @@
.als doc-do-list doc-hang-list
.
.
-.\" NS doc-have-diag-list global register (bool)
-.\" NS set if last item was a diag list
-.
-.\" XXX: this should be modified to handle nested lists of any type
-.
-.nr doc-have-diag-list 0
-.
-.
.\" NS doc-diag-list-input-line-count global register
.\" NS saved line number to be checked in next diag-list item
.
@@ -3862,8 +3850,8 @@
. nr doc-curr-font \n[.f]
. nr doc-curr-size \n[.ps]
.
-. ie \n[doc-have-diag-list] \{\
-. ie ((\n[.c] - \n[doc-diag-list-input-line-count]) > 1) \
+. ie ((\n[.c] - \n[doc-diag-list-input-line-count]) > 1) \{\
+. ie !\n[doc-compact-list-stack\n[doc-list-depth]] \
. doc-paragraph
. el \
. br
@@ -3913,8 +3901,13 @@
. ev
. box
.
-. if !"TagwidtH"\*[doc-tag-width-stack\n[doc-list-depth]]" \
+. if !"TagwidtH"\*[doc-tag-width-stack\n[doc-list-depth]]" \{\
+. if !\n[doc-list-have-indent-stack\n[doc-list-depth]] \{\
+. in -(\n[doc-list-indent-stack\n[doc-list-depth]]u + \n[doc-digit-width]u)
+. nr doc-list-have-indent-stack\n[doc-list-depth] 1
+. \}
. doc-get-tag-width
+. \}
. doc-set-vertical-and-indent 1
. nr doc-reg-dtl (\n[doc-list-indent-stack\n[doc-list-depth]]u + \n[doc-digit-width]u)
. ti -\n[doc-reg-dtl]u
@@ -3945,7 +3938,6 @@
.\" NS resolve unknown tag width (`tag' list-type only)
.\" NS
.\" NS modifies:
-.\" NS doc-have-indent
.\" NS doc-list-indent-stackXXX
.\" NS doc-tag-width-stackXXX
.\" NS
@@ -3970,21 +3962,17 @@
.\" NS offset if argument is non-zero)
.\" NS
.\" NS modifies:
-.\" NS doc-have-indent
+.\" NS doc-list-have-indent-stackXXX
.
.de doc-set-vertical-and-indent
-. ie \n[doc-have-indent] \{\
-. nr doc-have-indent 0
-. if !\n[doc-compact-list-stack\n[doc-list-depth]] \
-. sp \n[doc-display-vertical]u
-. in +\n[doc-list-offset-stack\n[doc-list-depth]]u
+. if !\n[doc-compact-list-stack\n[doc-list-depth]] \
+. sp \n[doc-display-vertical]u
+.
+. if \n[doc-list-have-indent-stack\n[doc-list-depth]] \{\
+. nr doc-list-have-indent-stack\n[doc-list-depth] 0
. if \$1 \
. in +(\n[doc-list-indent-stack\n[doc-list-depth]]u + \n[doc-digit-width]u)
. \}
-. el \{\
-. if !\n[doc-compact-list-stack\n[doc-list-depth]] \
-. sp \n[doc-display-vertical]u
-. \}
.
. if !\n[cR] \
. ne 2v
@@ -4056,45 +4044,41 @@
' in -(\n[doc-list-indent-stack\n[doc-list-depth]]u + \n[doc-digit-width]u)
.
' in -\n[doc-list-offset-stack\n[doc-list-depth]]u
-. nr doc-list-offset-stack\n[doc-list-depth] 0
.
. if (\n[doc-list-depth] <= 0) \
. tm mdoc warning: extraneous .El call (#\n[.c])
.
. doc-decrement-list-stack
. nr doc-list-depth -1
-. doc-increment-list-stack
..
.
.
-.\" NS doc-next-list-depth global register
-.\" NS next possible doc-list-depth value
-.
-.nr doc-next-list-depth 1
-.
-.
.\" NS doc-increment-list-stack macro
.\" NS set up next block for list
.\" NS
.\" NS modifies:
.\" NS doc-compact-list-stackXXX
+.\" NS doc-list-have-indent-stackXXX
.\" NS doc-list-indent-stackXXX
.\" NS doc-list-offset-stackXXX
.\" NS doc-list-type-stackXXX
-.\" NS doc-next-list-depth
.\" NS doc-tag-prefix-stackXXX
.\" NS doc-tag-width-stackXXX
.\" NS doc-enum-list-count-stackXXX
+.\" NS
+.\" NS local variables:
+.\" NS doc-reg-dils
.
.de doc-increment-list-stack
-. nr doc-next-list-depth (\n[doc-list-depth] + 1)
-. nr doc-list-indent-stack\n[doc-next-list-depth] 0
-. nr doc-list-offset-stack\n[doc-next-list-depth] 0
-. ds doc-tag-prefix-stack\n[doc-next-list-depth]
-. ds doc-tag-width-stack\n[doc-next-list-depth] \*[doc-tag-width-stack\n[doc-list-depth]]
-. ds doc-list-type-stack\n[doc-next-list-depth]
-. nr doc-compact-list-stack\n[doc-next-list-depth] 0
-. nr doc-enum-list-count-stack\n[doc-next-list-depth] 0
+. nr doc-reg-dils (\n[doc-list-depth] + 1)
+. nr doc-list-have-indent-stack\n[doc-reg-dils] 0
+. nr doc-list-indent-stack\n[doc-reg-dils] 0
+. nr doc-list-offset-stack\n[doc-reg-dils] 0
+. ds doc-tag-prefix-stack\n[doc-reg-dils]
+. ds doc-tag-width-stack\n[doc-reg-dils] \*[doc-tag-width-stack\n[doc-list-depth]]
+. ds doc-list-type-stack\n[doc-reg-dils]
+. nr doc-compact-list-stack\n[doc-reg-dils] 0
+. nr doc-enum-list-count-stack\n[doc-reg-dils] 0
..
.
.
@@ -4103,23 +4087,23 @@
.\" NS
.\" NS modifies:
.\" NS doc-compact-list-stackXXX
+.\" NS doc-list-have-indent-stackXXX
.\" NS doc-list-indent-stackXXX
.\" NS doc-list-offset-stackXXX
.\" NS doc-list-type-stackXXX
-.\" NS doc-next-list-depth
.\" NS doc-tag-prefix-stackXXX
.\" NS doc-tag-width-stackXXX
.\" NS doc-enum-list-count-stackXXX
.
.de doc-decrement-list-stack
-. ds doc-list-type-stack\n[doc-next-list-depth]
-. nr doc-list-indent-stack\n[doc-next-list-depth] 0
-. nr doc-list-offset-stack\n[doc-next-list-depth] 0
-. ds doc-tag-prefix-stack\n[doc-next-list-depth]
-. ds doc-tag-width-stack\n[doc-next-list-depth]
-. nr doc-compact-list-stack\n[doc-next-list-depth] 0
-. nr doc-enum-list-count-stack\n[doc-next-list-depth] 0
-. nr doc-next-list-depth -1
+. ds doc-list-type-stack\n[doc-list-depth]
+. nr doc-list-have-indent-stack\n[doc-list-depth] 0
+. nr doc-list-indent-stack\n[doc-list-depth] 0
+. nr doc-list-offset-stack\n[doc-list-depth] 0
+. ds doc-tag-prefix-stack\n[doc-list-depth]
+. ds doc-tag-width-stack\n[doc-list-depth]
+. nr doc-compact-list-stack\n[doc-list-depth] 0
+. nr doc-enum-list-count-stack\n[doc-list-depth] 0
..
.
.
@@ -4206,7 +4190,6 @@
. fi
. doc-decrement-list-stack
. nr doc-list-depth -1
-. doc-increment-list-stack
..
.
.
@@ -4250,7 +4233,7 @@
. \}
.
. ta \*[doc-str-dsct]
-' in +(\n[doc-column-indent-width]u + \n[doc-list-offset-stack\n[doc-list-depth]]u)
+' in +\n[doc-column-indent-width]u
..
.
.
diff --git a/tmac/groff_mdoc.man b/tmac/groff_mdoc.man
index f195dd52..ff8460fc 100644
--- a/tmac/groff_mdoc.man
+++ b/tmac/groff_mdoc.man
@@ -3318,15 +3318,11 @@ numerical id of parent of process priority
.It Fl diag
Diag lists create section four diagnostic lists and are similar to inset
lists except callable macros are ignored.
-This list type can't be nested; the flags
-.Fl offset
-and
-.Fl compact
-are ignored
-.Pf ( Fl width
+The flags
+.Fl width
and
.Fl xwidth
-are not meaningful in this context).
+are not meaningful in this context.
.Pp
Example:
.
@@ -3528,22 +3524,15 @@ the width of
.Ao string Ac
(typeset with a fixed-width font) is taken as the offset.
.Pp
-If a width is not specified for the tag list type, the first time
+If a width is not specified for the tag list type, every time
.Ql .It
is invoked, an attempt is made to determine an appropriate width.
If the first argument to
.Ql .It
-is a callable macro, the default width for that macro will be used as if the
-macro name had been supplied as the width (otherwise, the default width of
+is a callable macro, the default width for that macro will be used;
+otherwise, the default width of
.Ql .No
-is used).
-However, if another item in the list is given with a different callable
-macro name, a new and nested list is assumed.
-This effectively means that
-.Fl width
-or
-.Fl xwidth
-is required for more complicated tag lists.
+is used.
.It Fl xwidth Ao Ar string Ac
Interpret
.Ao string Ac