xref: /freebsd/contrib/mandoc/gmdiff (revision 7648bc9fee8dec6cb3c4941e0165a930fbe8dcb0)
161d06d6bSBaptiste Daroussin#!/bin/sh
261d06d6bSBaptiste Daroussin# Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
361d06d6bSBaptiste Daroussin#
461d06d6bSBaptiste Daroussin# Permission to use, copy, modify, and distribute this software for any
561d06d6bSBaptiste Daroussin# purpose with or without fee is hereby granted, provided that the above
661d06d6bSBaptiste Daroussin# copyright notice and this permission notice appear in all copies.
761d06d6bSBaptiste Daroussin#
861d06d6bSBaptiste Daroussin# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
961d06d6bSBaptiste Daroussin# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1061d06d6bSBaptiste Daroussin# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1161d06d6bSBaptiste Daroussin# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1261d06d6bSBaptiste Daroussin# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1361d06d6bSBaptiste Daroussin# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1461d06d6bSBaptiste Daroussin# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1561d06d6bSBaptiste Daroussin
1661d06d6bSBaptiste Daroussinif [ `id -u` -eq 0 ]; then
1761d06d6bSBaptiste Daroussin  echo "$0: do not run me as root"
1861d06d6bSBaptiste Daroussin  exit 1
1961d06d6bSBaptiste Daroussinfi
2061d06d6bSBaptiste Daroussin
2161d06d6bSBaptiste Daroussinif [ $# -eq 0 ]; then
2261d06d6bSBaptiste Daroussin  echo "usage: $0 [-h|-u] manual_source_file ..."
2361d06d6bSBaptiste Daroussin  exit 1
2461d06d6bSBaptiste Daroussinfi
2561d06d6bSBaptiste Daroussin
2661d06d6bSBaptiste Daroussinif [ "X$1" = "X-h" ]; then
2761d06d6bSBaptiste Daroussin  shift
2861d06d6bSBaptiste Daroussin  export PATH="/usr/local/heirloom-doctools/bin:$PATH"
2961d06d6bSBaptiste Daroussin  EQN="neqn"
3061d06d6bSBaptiste Daroussin  ROFF="nroff"
3161d06d6bSBaptiste Daroussin  MOPT="-Ios=BSD -Tascii $MOPT"
3261d06d6bSBaptiste Daroussin  COLPIPE="col -b"
3361d06d6bSBaptiste Daroussinelif [ "X$1" = "X-u" ]; then
3461d06d6bSBaptiste Daroussin  shift
3561d06d6bSBaptiste Daroussin  ROFF="groff -ket -ww -Tutf8 -P -c"
3661d06d6bSBaptiste Daroussin  MOPT="-Ios=OpenBSD -Wall -Tutf8 $MOPT"
3761d06d6bSBaptiste Daroussin  COLPIPE="cat"
3861d06d6bSBaptiste Daroussinelse
39*7295610fSBaptiste Daroussin  ROFF="groff -ket -ww -mtty-char -Tascii -P -c"
4061d06d6bSBaptiste Daroussin  MOPT="-Ios=OpenBSD -Wall -Tascii $MOPT"
4161d06d6bSBaptiste Daroussin  COLPIPE="cat"
4261d06d6bSBaptiste Daroussinfi
4361d06d6bSBaptiste Daroussin
4461d06d6bSBaptiste Daroussinwhile [ -n "$1" ]; do
4561d06d6bSBaptiste Daroussin  file=$1
4661d06d6bSBaptiste Daroussin  shift
4761d06d6bSBaptiste Daroussin  echo " ========== $file ========== "
4861d06d6bSBaptiste Daroussin  $ROFF -mandoc $file | $COLPIPE 2> /tmp/roff.err > /tmp/roff.out
4961d06d6bSBaptiste Daroussin  ${MANDOC:=mandoc} $MOPT $file | $COLPIPE \
5061d06d6bSBaptiste Daroussin    2> /tmp/mandoc.err > /tmp/mandoc.out
5161d06d6bSBaptiste Daroussin  for i in roff mandoc; do
5261d06d6bSBaptiste Daroussin    [ -s /tmp/$i.err ] && echo "$i errors:" && cat /tmp/$i.err
5361d06d6bSBaptiste Daroussin  done
54*7295610fSBaptiste Daroussin  diff -au $DIFFOPT /tmp/roff.out /tmp/mandoc.out 2>&1
5561d06d6bSBaptiste Daroussindone
5661d06d6bSBaptiste Daroussin
5761d06d6bSBaptiste Daroussinexit 0
58