Skip to content

generate_man: Prevent sibling node loss in man page generation#1436

Merged
cmouse merged 1 commit intodovecot:mainfrom
slusarz:manpage_sibling_loss
Mar 2, 2026
Merged

generate_man: Prevent sibling node loss in man page generation#1436
cmouse merged 1 commit intodovecot:mainfrom
slusarz:manpage_sibling_loss

Conversation

@slusarz
Copy link
Contributor

@slusarz slusarz commented Feb 21, 2026

Parent's children array was being replaced entirely with the processed nodes of a single child, causing all sibling nodes to be discarded.

Use splice to insert the processed nodes into the parent's children array in place, preserving siblings.

Example diff (doveadm-who.1):

< Global doveadm(1)

Global doveadm(1) \fIoptions\fR:
28c28
< Do not read any config file, just use defaults. The \fBdovecot_storage_version\fR setting defaults to the latest version, but can be overridden with ---
Do not read any config file, just use defaults. The \fBdovecot_storage_version\fR setting defaults to the latest version, but can be overridden with \fB-o\fR.
150c150
< By default doveadm(1) will use the socket


By default doveadm(1) will use the socket \fI/rundir/anvil\fR. The socket may be located in another directory, when the default \fIbase_dir\fR setting was overridden in \fI/etc/dovecot/dovecot.conf\fR.

@slusarz slusarz force-pushed the manpage_sibling_loss branch from deb813a to ef7468c Compare February 21, 2026 20:07
Parent's children array was being replaced entirely with the processed
nodes of a single child, causing all sibling nodes to be discarded.

Use `splice` to insert the processed nodes into the parent's children
array in place, preserving siblings.

Example diff (doveadm-who.1):

< Global doveadm(1)
---
> Global doveadm(1) \fIoptions\fR:
28c28
< Do not read any config file, just use defaults. The \fBdovecot_storage_version\fR setting defaults to the latest version, but can be overridden with
---
> Do not read any config file, just use defaults. The \fBdovecot_storage_version\fR setting defaults to the latest version, but can be overridden with \fB-o\fR.
150c150
< By default doveadm(1) will use the socket
---
> By default doveadm(1) will use the socket \fI/rundir/anvil\fR. The socket may be located in another directory, when the default \fIbase_dir\fR setting was overridden in \fI/etc/dovecot/dovecot.conf\fR.
@cmouse cmouse force-pushed the manpage_sibling_loss branch from ef7468c to 579bcf6 Compare March 2, 2026 10:18
@cmouse cmouse merged commit 1dcd920 into dovecot:main Mar 2, 2026
5 checks passed
@slusarz slusarz deleted the manpage_sibling_loss branch March 2, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants