#! /bin/sh

# Time-stamp: <2005-01-04 10:51:10 feeley>

# Utility to change the version of Gambit attached to a source file.
#
# Usage: changev 40062 40063 file1 file2

OLDVERSION=$1
NEWVERSION=$2
TEMPFILE=/tmp/changev.$$

OLDMAJORVERSION=`eval expr $OLDVERSION / 10000`
OLDMINORVERSION=`eval expr $OLDVERSION % 10000 / 100`
if [ `eval expr $OLDVERSION % 100` -eq 99 ]
then
  OLDSTEPVERSION=""
  OLDDISTVERSION=""
elif [ `eval expr $OLDVERSION % 100` -lt 50 ]
then
  OLDSTEPVERSION=" alpha `eval expr $OLDVERSION % 50`"
  OLDDISTVERSION="a`eval expr $OLDVERSION % 50`"
else
  OLDSTEPVERSION=" beta `eval expr $OLDVERSION % 50`"
  OLDDISTVERSION="b`eval expr $OLDVERSION % 50`"
fi
OLDVERSIONSTRING=$OLDMAJORVERSION.$OLDMINORVERSION$OLDSTEPVERSION
OLDDISTVERSION="gambc$OLDMAJORVERSION$OLDMINORVERSION$OLDDISTVERSION"

NEWMAJORVERSION=`eval expr $NEWVERSION / 10000`
NEWMINORVERSION=`eval expr $NEWVERSION % 10000 / 100`
if [ `eval expr $NEWVERSION % 100` -eq 99 ]
then
  NEWSTEPVERSION=""
  NEWDISTVERSION=""
elif [ `eval expr $NEWVERSION % 100` -lt 50 ]
then
  NEWSTEPVERSION=" alpha `eval expr $NEWVERSION % 50`"
  NEWDISTVERSION="a`eval expr $NEWVERSION % 50`"
else
  NEWSTEPVERSION=" beta `eval expr $NEWVERSION % 50`"
  NEWDISTVERSION="b`eval expr $NEWVERSION % 50`"
fi
NEWVERSIONSTRING=$NEWMAJORVERSION.$NEWMINORVERSION$NEWSTEPVERSION
NEWDISTVERSION="gambc$NEWMAJORVERSION$NEWMINORVERSION$NEWDISTVERSION"

NEWMAJORVERSION=`eval expr $NEWVERSION / 10000`
NEWMINORVERSION=`eval expr $NEWVERSION % 10000 / 100`
if [ `eval expr $NEWVERSION % 100` -eq 99 ]
then NEWSTEPVERSION=""
elif [ `eval expr $NEWVERSION % 100` -lt 50 ]
then NEWSTEPVERSION=" alpha `eval expr $NEWVERSION % 50`"
else NEWSTEPVERSION=" beta `eval expr $NEWVERSION % 50`"
fi
NEWVERSIONSTRING=$NEWMAJORVERSION.$NEWMINORVERSION$NEWSTEPVERSION

while [ -n "$3" ]
do

  FILE=$3

  sed -e "s/#define ___VERSION $OLDVERSION/#define ___VERSION $NEWVERSION/g" -e "s/Gambit-C $OLDVERSIONSTRING/Gambit-C $NEWVERSIONSTRING/g" -e "s/Gambit Version $OLDVERSIONSTRING/Gambit Version $NEWVERSIONSTRING/g" -e "s/Gambit-C,$OLDVERSION/Gambit-C,$NEWVERSION/g" -e "s/$OLDDISTVERSION/$NEWDISTVERSION/g" -e "s/(define (system-version) $OLDVERSION)/(define (system-version) $NEWVERSION)/g" -e "s/PACKAGE_VERSION=\'$OLDVERSION\'/PACKAGE_VERSION=\'$NEWVERSION\'/g" -e "s/PACKAGE_STRING=\'Gambit-C $OLDVERSION\'/PACKAGE_STRING=\'Gambit-C $NEWVERSION\'/g" -e "s/Gambit-C $OLDVERSION/Gambit-C $NEWVERSION/g" -e "s/Gambit-C configure $OLDVERSION/Gambit-C configure $NEWVERSION/g" -e "s/Gambit-C \$as_me $OLDVERSION/Gambit-C \$as_me $NEWVERSION/g" -e "s/Gambit-C config.status $OLDVERSION/Gambit-C config.status $NEWVERSION/g" $FILE > $TEMPFILE

  diff -q $FILE $TEMPFILE > /dev/null

  if [ $? -eq 1 ]
  then
    echo =================================================== $FILE
    diff $FILE $TEMPFILE
    if [ -x $FILE ]
    then
      chmod +x $TEMPFILE
    fi
    mv $TEMPFILE $FILE
    #rm -f $TEMPFILE
  else
    rm -f $TEMPFILE
  fi

  shift

done
