blob: a58b7f9d5abbce36767a6d2c1d54ba41b031ad61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#! /bin/sh
set -e
# Check that a manual page formats without errors. Lintian does something
# similar for Debian packages. Relies on top_builddir, LINGUA, and EGREP
# variables exported from 'make check', or you can set them manually.
if [ -z "$top_builddir" ]; then
echo "top_builddir unset; try 'make check' instead?"
exit 77
elif [ -z "$LINGUA" ]; then
echo "LINGUA unset; try 'make check' instead?"
exit 77
elif [ -z "$EGREP" ]; then
echo "EGREP unset; try 'make check' instead?"
exit 77
fi
[ -x "$top_builddir/src/man" ] || exit 77
code=0
errors="$(LC_ALL=C MANWIDTH=80 MAN_KEEP_FORMATTING=1 "$top_builddir/libtool" \
--mode=execute \
-dlopen "$top_builddir/lib/.libs/libman.la" \
-dlopen "$top_builddir/libdb/.libs/libmandb.la" \
"$top_builddir/src/man" --warnings -E UTF-8 -l "$1" \
2>&1 >/dev/null)" || code=$?
# Ignore wrapping failures for CJK manual pages; this should go away once
# groff supports these natively.
# Indeed, even for other languages we're going to get "cannot adjust line"
# if %manpath_config_file% expands to something long. Hmm. We'll just ignore
# this across the board for now.
errors="$(echo "$errors" | $EGREP -v "(cannot adjust line|can't break line)")" || true
if [ "$code" != 0 ]; then
echo "man -E UTF-8 -l $1 failed with exit status $code and error output:"
echo "$errors"
exit $code
elif [ "$errors" ]; then
echo "man -E UTF-8 -l $1 produced error output:"
echo "$errors"
exit 1
else
exit 0
fi
|