mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
Many thanks to Paul Eggert for adopting most of our adaptations as optional features upstream in the previous release (2025c). MFC after: 1 week Reviewed by: philip Differential Revision: https://reviews.freebsd.org/D55741
57 lines
1.2 KiB
Bash
57 lines
1.2 KiB
Bash
#! /bin/sh
|
|
# Convert manual page troff stdin to formatted .txt stdout.
|
|
|
|
# This file is in the public domain, so clarified as of
|
|
# 2009-05-17 by Arthur David Olson.
|
|
|
|
manflags=
|
|
while
|
|
case $1 in
|
|
-*) :;;
|
|
*) false;;
|
|
esac
|
|
do
|
|
manflags="$manflags $1"
|
|
shift
|
|
done
|
|
|
|
groff="groff -dAD=l -rHY=0 $manflags -mtty-char -man -ww -P-bcou"
|
|
if ($groff) </dev/null >/dev/null 2>&1; then
|
|
$groff "$@"
|
|
elif (type mandoc && type col) >/dev/null 2>&1; then
|
|
mandoc $manflags -man "$@" | col -bx
|
|
elif (type nroff && type perl) >/dev/null 2>&1; then
|
|
printf '%s\n' '.
|
|
.\" Left-adjust and do not hyphenate.
|
|
.am TH
|
|
.na
|
|
.hy 0
|
|
..
|
|
.\" Omit internal page headers and footers.
|
|
.\" Unfortunately this also omits the starting header and ending footer,
|
|
.\" but that is the best old nroff can easily do.
|
|
.rm }H
|
|
.rm }F
|
|
.' | nroff -man - "$@" | perl -ne '
|
|
binmode STDIN, '\'':encoding(utf8)'\'';
|
|
binmode STDOUT, '\'':encoding(utf8)'\'';
|
|
chomp;
|
|
s/.\010//g;
|
|
s/\s*$//;
|
|
if (/^$/) {
|
|
$sawblank = 1;
|
|
next;
|
|
} else {
|
|
if ($sawblank && $didprint) {
|
|
print "\n";
|
|
$sawblank = 0;
|
|
}
|
|
print "$_\n";
|
|
$didprint = 1;
|
|
}
|
|
'
|
|
else
|
|
printf >&2 '%s\n' "$0: please install groff, or mandoc and col"
|
|
exit 1
|
|
fi
|