#!/bin/sh ###################################################### # # Test that the manpages don't have any syntax errors # as detected by groff. # ###################################################### # First find out whether we have a groff on the path: # portable implementation of 'which' utility findprog() { FOUND= PROG="$1" IFS_SAVE="$IFS" IFS=: for D in $PATH; do if [ -z "$D" ]; then D=. fi if [ -f "$D/$PROG" ] && [ -x "$D/$PROG" ]; then printf '%s\n' "$D/$PROG" break fi done IFS="$IFS_SAVE" } if [ -z "$(findprog groff)" ]; then echo "Test $0 SKIP (missing groff)" exit 120 fi cd $MH_TEST_DIR/share/man # groff will still exit with status zero even if warnings # were emitted, so we have to jump through hoops to # find out if any were emitted. expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual # There aren't any expected warnings at the moment but # this mechanism does let us add them if necessary later. rm -f "$expected" "$actual" touch "$expected" "$actual" for manpage in man?/*.?; do groff -Tutf8 -mandoc -wmac "$manpage" > /dev/null 2>>"$actual" done diff -u "$expected" "$actual"