umask 000
for file
do
if [ -n "${headflag}" ]
then
header=yes
fi
if [ -n "${packflag}" ]
then
pack=.z
fi
case ${file} in
-c[0-9]* )
nextcycle=`expr ${file} : '-c\(.*\)'`
continue
;;
-p )
pack=.z
continue
;;
-h )
header=yes
continue
esac
if [ -n "${nextcycle}" ]
then
cycles=${nextcycle}
lastcycle=${nextcycle}
nextcycle=
else
cycles=${defaultcycles}
lastcycle=${defaultcycles}
fi
if [ ! -f ${file} ]
then
echo >&2 "${cmd}: No file '${file}'"
continue
fi
basename=`basename ${file}`
while [ ${cycles} -gt 1 ]
do
prev=`expr ${cycles} - 1`
if [ `expr ${basename}-${cycles}${pack} : '.*'` -gt 14 ]
then
echo >&2 "${cmd}: filename too long '${file}-${cycles}${pack}'"
cycles=${prev}
continue
fi
if [ ${cycles} = ${lastcycle} ]
then
rm -f ${file}-${cycles} ${file}-${cycles}.z
fi
if [ -f ${file}-${prev}.z ]
then
mv -f ${file}-${prev}.z ${file}-${cycles}.z
elif [ -f ${file}-${prev} ]
then
mv -f ${file}-${prev} ${file}-${cycles}
fi
cycles=${prev}
done
mv -f ${file} ${file}-1
if [ -n "${pack}" ]
then
pack ${file}-1 >/dev/null 2>&1
pack=
fi
>> ${file}
if [ ${header} ]
then
(date; echo ============================) >> ${file}
header=
fi
done