Allow subsection in preamble

Subsections are useful in case on name conflicts within a section.
Typically man pages in distributions are using the 'p' subsection.
They are also needed for the man pages of wrapper commands for example.
Section needs to be explicitly defined

The absence of value between the section parentheses resulted in the
section being 0 (header files), which is unlikely to be the one wanted
Update version to 1.10.1
Fix `date --date` dependent test

This test depends on a nonportable option for date(1). I am not sure
that there is a good portable way to do this, so I just directly
included the seconds since epoch that it would have computed. We're
testing scdoc, not testing the local system's date command.
Fix timezone-dependent tests

These tests fail depending on timezone and current time if the date
differs from the UTC date. This was remedied by using `date -u`, which
Expand preamble written to man page output
Replace str_t with struct str
Update version to 1.10.0
Add contrib/_incr_version
tables: add expand options
5c782cda — Zandr Martin 7 months ago 1.9.7
fix bug preventing indented literal blocks

This commit fixes a bug in parsing indented literal blocks. For example:


	This is a block

Prior to this commit, this would fail, but with an unexpected error
message: "Error at 4:3: Cannot deindent in literal block". The
indentation was being parsed at every character, so the parser saw the
`T`, then parsed indentation again. The indentation was 0 (since there
were no tab characters between the `T` and the `h`), but the block
started with an indentation level of 1. 0 < 1, so this would be
considered a dedent, which is not allowed.

This commit introduces a new local variable, `check_indent`, which
controls whether the parser tries to parse indentation or not; now
indentation is only parsed when the last character was a newline. From
my testing this seems to fix the issue - indented literal blocks are now
053c7705 — Zandr Martin 7 months ago
remove unnecessary `closed` variable in parse_list

This local variable was initialized to `false` and never set to true
anywhere in the function.
Update version to 1.9.6
Fix regression with manual name check
Update version to 1.9.5
0c26abe0 — Zandr Martin 8 months ago
enforce 1-step indentation

Allow multi-step indentation in literal blocks, and allow multi-step
Revert "fix enforcement of 1-step indentation"

This reverts commit 8c537aa2956a55fe341e1d48110ae6985ada7e5f.
8c537aa2 — Zandr Martin 8 months ago
fix enforcement of 1-step indentation
f7fb0700 — Zandr Martin 8 months ago
disallow invalid name characters

This commit makes using invalid characters in the name a fatal error.
Before this patch, "foo | bar(1)" would parse as "foobar(1)". Now it is
a fatal error and parsing stops.
Add .build.yml