#!/bin/sh
set -e
enable() {
perl -0 -p \
-e 's||\1|gs'
}
disable() {
perl -0 -p \
-e 's|\n((\s*)\s*'"$1"'.*?\n(\s*).*?\n)|\n\2\n|sg' \
| perl -0 -p \
-e 's|)\s*-->|\1|gs'
}
file="$1"
shift
while [ -n "$1" ]; do
case "$1" in
+*) cmd=enable;name="${1#+}";;
-*) cmd=disable;name="${1#-}";;
*) false;;
esac
echo "$cmd" "$name"
sed -e 's/\r$//g' "$file" | $cmd "$name" | sed -e 's/$/\r/g' > "$file.tmp"
mv "$file.tmp" "$file"
shift
done