man-pages/scripts/man_show_fixme.sh

56 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# Render man pages with FIXMEs shown as tables
# in the rendered page
#
for f in $*; do
cat $f | awk '
/^\.\\" *FIXME/ {
if ($0 ~ /.*FIXME *\..*/) {
# FIXMES of the form "FIXME ." are "private" and
# ignored by this script
} else {
sub("FIXME[: ]*", "")
if ($0 ~ /^\.\\"[ ]*$/) {
# If the FIXME line contains no additional text after
# "FIXME", then discard the blank line
getline
}
print ""
if (fixme == 0) {
print ".TS"
print ".allbox;"
print "lbw52"
print "l."
print "FIXME"
print "T{"
}
fixme = 1
}
}
$0 !~ /^\.\\"/ && fixme == 1 {
fixme = 0
print "T}"
print ".TE"
print ""
}
fixme == 1 {
sub("^\\...[ ]", "")
sub("^\\...", "")
gsub("'"'"'", "\\(aq")
if ($0 ~ /^[ ][ ]*.*/) {
print ".br"
sub("^[ ]*", " ")
}
}
{
print $0
}
' | tee "/tmp/$(basename $f).src" | man --nh --nj -l /dev/stdin
done