#!/bin/bash
# htmlize: add or remove sgml entities for nonstandard ascii chars
# changes them to or from ISO 8859-1
# 960506 Erik TKS
# htmlize: create code for html-characters
function htmlizef
{
sed -e 's/á/\á/g' -e 's/Á/\Á/g' \
-e 's/â/\â/g' -e 's/Â/\Â/g' \
-e 's/æ/\æ/g' -e 's/Æ/\Æ/g' \
-e 's/à/\à/g' -e 's/À/\À/g' \
-e 's/å/\å/g' -e 's/Å/\Å/g' \
-e 's/ã/\ã/g' -e 's/Ã/\Ã/g' \
-e 's/ä/\ä/g' -e 's/Ä/\Ä/g' \
-e 's/ç/\ç/g' -e 's/Ç/\Ç/g' \
-e 's/é/\é/g' -e 's/É/\É/g' \
-e 's/ê/\ê/g' -e 's/Ê/\Ê/g' \
-e 's/è/\è/g' -e 's/È/\È/g' \
-e 's/ð/\ð/g' -e 's/Ð/\Ð/g' \
-e 's/ë/\ë/g' -e 's/Ë/\Ë/g' \
-e 's/í/\í/g' -e 's/Í/\Í/g' \
-e 's/î/\î/g' -e 's/Î/\Î/g' \
-e 's/ì/\ì/g' -e 's/Ì/\Ì/g' \
-e 's/ï/\ï/g' -e 's/Ï/\Ï/g' \
-e 's/ñ/\ñ/g' -e 's/Ñ/\Ñ/g' \
-e 's/ó/\ó/g' -e 's/Ó/\Ó/g' \
-e 's/ô/\ô/g' -e 's/Ô/\Ô/g' \
-e 's/ò/\ò/g' -e 's/Ò/\Ò/g' \
-e 's/ø/\ø/g' -e 's/Ø/\Ø/g' \
-e 's/õ/\õ/g' -e 's/Õ/\Õ/g' \
-e 's/ö/\ö/g' -e 's/Ö/\Ö/g' \
-e 's/þ/\þ/g' -e 's/Þ/\Þ/g' \
-e 's/ú/\ú/g' -e 's/Ú/\Ú/g' \
-e 's/û/\û/g' -e 's/Û/\Û/g' \
-e 's/ù/\ù/g' -e 's/Ù/\Ù/g' \
-e 's/ü/\ü/g' -e 's/Ü/\Ü/g' \
-e 's/ý/\ý/g' -e 's/Ý/\Ý/g' \
-e 's/ÿ/\ÿ/g' -e 's/ß/\ß/g' \
-e 's/¡/\¡/g' -e 's/°/\°/g' \
-e 's/©/\©/g' -e 's/¿/\¿/g' \
-e 's/±/\&plusm;/g' -e 's/º/\º/g' \
-e 's/ª/\ª/g' \
-e 's/
//g'
}
# dehtmlize: create code for html-characters
function dehtmlizef
{
sed -e 's/\á/á/g' -e 's/\Á/Á/g' \
-e 's/\â/â/g' -e 's/\Â/Â/g' \
-e 's/\æ/æ/g' -e 's/\Æ/Æ/g' \
-e 's/\à/à/g' -e 's/\À/À/g' \
-e 's/\å/å/g' -e 's/\Å/Å/g' \
-e 's/\ã/ã/g' -e 's/\Ã/Ã/g' \
-e 's/\ä/ä/g' -e 's/\Ä/Ä/g' \
-e 's/\ç/ç/g' -e 's/\Ç/Ç/g' \
-e 's/\é/é/g' -e 's/\É/É/g' \
-e 's/\ê/ê/g' -e 's/\Ê/Ê/g' \
-e 's/\è/è/g' -e 's/\È/È/g' \
-e 's/\ð/ð/g' -e 's/\Ð/Ð/g' \
-e 's/\ë/ë/g' -e 's/\Ë/Ë/g' \
-e 's/\í/í/g' -e 's/\Í/Í/g' \
-e 's/\î/î/g' -e 's/\Î/Î/g' \
-e 's/\ì/ì/g' -e 's/\Ì/Ì/g' \
-e 's/\ï/ï/g' -e 's/\Ï/Ï/g' \
-e 's/\ñ/ñ/g' -e 's/\Ñ/Ñ/g' \
-e 's/\ó/ó/g' -e 's/\Ó/Ó/g' \
-e 's/\ô/ô/g' -e 's/\Ô/Ô/g' \
-e 's/\ò/ò/g' -e 's/\Ò/Ò/g' \
-e 's/\ø/ø/g' -e 's/\Ø/Ø/g' \
-e 's/\õ/õ/g' -e 's/\Õ/Õ/g' \
-e 's/\ö/ö/g' -e 's/\Ö/Ö/g' \
-e 's/\þ/þ/g' -e 's/\Þ/Þ/g' \
-e 's/\ú/ú/g' -e 's/\Ú/Ú/g' \
-e 's/\û/û/g' -e 's/\Û/Û/g' \
-e 's/\ù/ù/g' -e 's/\Ù/Ù/g' \
-e 's/\ü/ü/g' -e 's/\Ü/Ü/g' \
-e 's/\ý/ý/g' -e 's/\Ý/Ý/g' \
-e 's/\ÿ/ÿ/g' -e 's/\ß/ß/g' \
-e 's/\¡/¡/g' -e 's/\°/°/g' \
-e 's/\©/©/g' -e 's/\¿/¿/g' \
-e 's/\&plusm;/±/g' -e 's/\º/º/g' \
-e 's/\ª/ª/g' -e 's/\&/\&/g' \
-e 's/\à/à/g' -e 's/\À/À/g' \
-e 's/\á/á/g' -e 's/\Á/Á/g' \
-e 's/\â/â/g' -e 's/\Â/Â/g' \
-e 's/\ã/ã/g' -e 's/\Ã/Ã/g' \
-e 's/\ä/ä/g' -e 's/\Ä/Ä/g' \
-e 's/\å/å/g' -e 's/\Å/Å/g' \
-e 's/\æ/æ/g' -e 's/\Æ/Æ/g' \
-e 's/\ç/ç/g' -e 's/\Ç/Ç/g' \
-e 's/\è/è/g' -e 's/\È/È/g' \
-e 's/\é/é/g' -e 's/\É/É/g' \
-e 's/\ê/ê/g' -e 's/\Ê/Ê/g' \
-e 's/\ë/ë/g' -e 's/\Ë/Ë/g' \
-e 's/\ì/ì/g' -e 's/\Ì/Ì/g' \
-e 's/\í/í/g' -e 's/\Í/Í/g' \
-e 's/\î/î/g' -e 's/\Î/Î/g' \
-e 's/\ï/ï/g' -e 's/\Ï/Ï/g' \
-e 's/\ð/ð/g' -e 's/\Ð/Ð/g' \
-e 's/\ñ/ñ/g' -e 's/\Ñ/Ñ/g' \
-e 's/\ò/ò/g' -e 's/\Ò/Ò/g' \
-e 's/\ó/ó/g' -e 's/\Ó/Ó/g' \
-e 's/\ô/ô/g' -e 's/\Ô/Ô/g' \
-e 's/\õ/õ/g' -e 's/\Õ/Õ/g' \
-e 's/\ö/ö/g' -e 's/\Ö/Ö/g' \
-e 's/\ø/ø/g' -e 's/\Ø/Ø/g' \
-e 's/\ù/ù/g' -e 's/\Ù/Ù/g' \
-e 's/\ú/ú/g' -e 's/\Ú/Ú/g' \
-e 's/\û/û/g' -e 's/\Û/Û/g' \
-e 's/\ü/ü/g' -e 's/\Ü/Ü/g' \
-e 's/\ý/ý/g' -e 's/\Ý/Ý/g' \
-e 's/\þ/þ/g' -e 's/\Þ/Þ/g' \
-e 's/\ÿ/ÿ/g' -e 's/\ß/ß/g' \
-e 's/\¡/¡/g' -e 's/\º/°/g' \
-e 's/\®/©/g' -e 's/\¿/¿/g' \
-e 's/\±/±/g' -e 's/\º/º/g' \
-e 's/\ª/ª/g' -e 's/\&/\&/g' \
-e 's/\–/-/g' -e 's/\"/"/g' \
-e 's/\«/<>/g' \
-e "s/\'/'/g" -e 's/\&slash;/\//g' \
-e 's/
//g'
}
if [ "X$1" = "X-r" ]
then
REVERSE="true"
shift
else
REVERSE="false"
fi
if [ -z "$TMPDIR" ]
then
TMPDIR="/tmp"
fi
TMPFILE1="$TMPDIR/htmlize.$$"
if [ -z "$1" ]
then
if [ "$REVERSE" != "true" ]
then
htmlizef
else
dehtmlizef
fi
fi
while [ -n "$1" ]
do
if [ ! -w $1 ]
then
READONLY="true"
chmod u+w $1
else
READONLY="false"
fi
if [ "$REVERSE" != "true" ]
then
cat $1 | htmlizef > $TMPFILE1
else
cat $1 | dehtmlizef > $TMPFILE1
fi
cp $TMPFILE1 $1
if [ "$READONLY" = "true" ]
then
chmod u-w $1
fi
READONLY="false"
shift
done
/bin/rm -rf $TMPFILE1 2>/dev/null
exit 0