xref: /freebsd/contrib/mandoc/gmdiff (revision 61d06d6bd19dafe8ea971dd43e8328fa1b473456)
1*61d06d6bSBaptiste Daroussin#!/bin/sh
2*61d06d6bSBaptiste Daroussin# Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
3*61d06d6bSBaptiste Daroussin#
4*61d06d6bSBaptiste Daroussin# Permission to use, copy, modify, and distribute this software for any
5*61d06d6bSBaptiste Daroussin# purpose with or without fee is hereby granted, provided that the above
6*61d06d6bSBaptiste Daroussin# copyright notice and this permission notice appear in all copies.
7*61d06d6bSBaptiste Daroussin#
8*61d06d6bSBaptiste Daroussin# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*61d06d6bSBaptiste Daroussin# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*61d06d6bSBaptiste Daroussin# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*61d06d6bSBaptiste Daroussin# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*61d06d6bSBaptiste Daroussin# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*61d06d6bSBaptiste Daroussin# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*61d06d6bSBaptiste Daroussin# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*61d06d6bSBaptiste Daroussin
16*61d06d6bSBaptiste Daroussinif [ `id -u` -eq 0 ]; then
17*61d06d6bSBaptiste Daroussin  echo "$0: do not run me as root"
18*61d06d6bSBaptiste Daroussin  exit 1
19*61d06d6bSBaptiste Daroussinfi
20*61d06d6bSBaptiste Daroussin
21*61d06d6bSBaptiste Daroussinif [ $# -eq 0 ]; then
22*61d06d6bSBaptiste Daroussin  echo "usage: $0 [-h|-u] manual_source_file ..."
23*61d06d6bSBaptiste Daroussin  exit 1
24*61d06d6bSBaptiste Daroussinfi
25*61d06d6bSBaptiste Daroussin
26*61d06d6bSBaptiste Daroussinif [ "X$1" = "X-h" ]; then
27*61d06d6bSBaptiste Daroussin  shift
28*61d06d6bSBaptiste Daroussin  export PATH="/usr/local/heirloom-doctools/bin:$PATH"
29*61d06d6bSBaptiste Daroussin  EQN="neqn"
30*61d06d6bSBaptiste Daroussin  ROFF="nroff"
31*61d06d6bSBaptiste Daroussin  MOPT="-Ios=BSD -Tascii $MOPT"
32*61d06d6bSBaptiste Daroussin  COLPIPE="col -b"
33*61d06d6bSBaptiste Daroussinelif [ "X$1" = "X-u" ]; then
34*61d06d6bSBaptiste Daroussin  shift
35*61d06d6bSBaptiste Daroussin  ROFF="groff -ket -ww -Tutf8 -P -c"
36*61d06d6bSBaptiste Daroussin  MOPT="-Ios=OpenBSD -Wall -Tutf8 $MOPT"
37*61d06d6bSBaptiste Daroussin  COLPIPE="cat"
38*61d06d6bSBaptiste Daroussinelse
39*61d06d6bSBaptiste Daroussin  ROFF="groff -et -ww -mtty-char -Tascii -P -c"
40*61d06d6bSBaptiste Daroussin  MOPT="-Ios=OpenBSD -Wall -Tascii $MOPT"
41*61d06d6bSBaptiste Daroussin  COLPIPE="cat"
42*61d06d6bSBaptiste Daroussinfi
43*61d06d6bSBaptiste Daroussin
44*61d06d6bSBaptiste Daroussinwhile [ -n "$1" ]; do
45*61d06d6bSBaptiste Daroussin  file=$1
46*61d06d6bSBaptiste Daroussin  shift
47*61d06d6bSBaptiste Daroussin  echo " ========== $file ========== "
48*61d06d6bSBaptiste Daroussin  $ROFF -mandoc $file | $COLPIPE 2> /tmp/roff.err > /tmp/roff.out
49*61d06d6bSBaptiste Daroussin  ${MANDOC:=mandoc} $MOPT $file | $COLPIPE \
50*61d06d6bSBaptiste Daroussin    2> /tmp/mandoc.err > /tmp/mandoc.out
51*61d06d6bSBaptiste Daroussin  for i in roff mandoc; do
52*61d06d6bSBaptiste Daroussin    [ -s /tmp/$i.err ] && echo "$i errors:" && cat /tmp/$i.err
53*61d06d6bSBaptiste Daroussin  done
54*61d06d6bSBaptiste Daroussin  diff -au /tmp/roff.out /tmp/mandoc.out 2>&1
55*61d06d6bSBaptiste Daroussindone
56*61d06d6bSBaptiste Daroussin
57*61d06d6bSBaptiste Daroussinexit 0
58