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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#!/bin/sh
#
# fhist - file history and comparison tools
# Copyright (C) 2002 Peter Miller;
# All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
#
# MANIFEST: shell script to insulate agains gettext vagueries
#
input=
output=-
msgfmt=
msgcat=
#
# read the command line arguments
#
while [ $# -gt 0 ]
do
case "$1" in
-*=*)
name="`echo $1 | sed -e 's|^-*||' -e 's|=.*||'`"
value="`echo $1 | sed 's|.*=||'`"
eval "$name='$value'"
;;
-*)
# ignore unknown options.
;;
*)
input="$input $1"
;;
esac
shift
done
test "$input" != "" || input=-
test "$msgfmt" != "" || msgfmt=msgfmt
#
# See which way we should handle the processing.
#
exitstatus=1
if [ "$msgcat" != "" ]
then
#
# Versions of GNU Gettext which supply the `msgcat' program (for
# joining message catalogues together) have a msgfmt program which
# objects to duplictes in the input.
#
# We use msgcat to resolve the duplicate (msgid "", the file header).
#
if $msgcat --use-first --force-po $input > /tmp/$$
then
if $msgfmt -o $output /tmp/$$
then
exitstatus=0
fi
fi
rm /tmp/$$
else
#
# Old versions of GNU Gettext, and gettext from dumber
# implementations, simply glue it all together.
#
if $msgfmt -o $output $input
then
exitstatus=0
fi
fi
exit $exitstatus
|