diff options
author | Richard Levitte <levitte@openssl.org> | 2018-05-16 11:12:21 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-05-16 20:49:33 +0200 |
commit | 8d483b2de78619e8592f2558301f3295daf59690 (patch) | |
tree | 093a301e1d8d8419f179c766c84fedd79c4bb295 /util/process_docs.pl | |
parent | 653162c6005b4594327029729c0bffcf7c15d58c (diff) | |
download | openssl-new-8d483b2de78619e8592f2558301f3295daf59690.tar.gz |
When producing man-pages, ensure NAME section is one line only
There are *roff parsers that are strict about the NAME section being
one line only. The man(7) on Debian GNU/Linux suggests that this is
appropriate, so we compensate our multi-line NAME sections by fixing
the *roff output.
Noted by Eric S. Raymond
Related to #6264
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6268)
Diffstat (limited to 'util/process_docs.pl')
-rwxr-xr-x | util/process_docs.pl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/util/process_docs.pl b/util/process_docs.pl index 2b7f3227d3..ef79a1f5cd 100755 --- a/util/process_docs.pl +++ b/util/process_docs.pl @@ -112,6 +112,32 @@ foreach my $section (sort @{$options{section}}) { @output = `$generate`; map { s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html"|g; } @output if $options{type} eq "html"; + if ($options{type} eq "man") { + # Because some *roff parsers are more strict than others, + # multiple lines in the NAME section must be merged into + # one. + my $in_name = 0; + my $name_line = ""; + my @newoutput = (); + foreach (@output) { + if ($in_name) { + if (/^\.SH "/) { + $in_name = 0; + push @newoutput, $name_line."\n"; + } else { + chomp (my $x = $_); + $name_line .= " " if $name_line; + $name_line .= $x; + next; + } + } + if (/^\.SH +"NAME" *$/) { + $in_name = 1; + } + push @newoutput, $_; + } + @output = @newoutput; + } } print STDERR "DEBUG: Done processing\n" if $options{debug}; |