summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>1998-01-13 16:29:08 (GMT)
committerFred Drake <fdrake@acm.org>1998-01-13 16:29:08 (GMT)
commitbc3b1c6fce4ed3859f05a641d13e01d75e27ff89 (patch)
tree51660ab909bdd641dc014c2678a624045b5e936a /Doc
parentab0b65d0c9e5cb654daa63fce439efad11d337da (diff)
downloadcpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.zip
cpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.tar.gz
cpython-bc3b1c6fce4ed3859f05a641d13e01d75e27ff89.tar.bz2
Script to add & remove LaTeX \documentclass options. Run "./texoption.sh"
for usage information.
Diffstat (limited to 'Doc')
-rwxr-xr-xDoc/texoption.sh95
1 files changed, 95 insertions, 0 deletions
diff --git a/Doc/texoption.sh b/Doc/texoption.sh
new file mode 100755
index 0000000..b90dab8
--- /dev/null
+++ b/Doc/texoption.sh
@@ -0,0 +1,95 @@
+#! /bin/sh
+#
+# Script to convert LaTeX2e documents to & from having a \documentclass{}
+# option.
+
+VERBOSE=false
+SETOPTION=true
+FILES=`echo ???.tex`
+
+usage() {
+ exec >&2
+ echo "usage: $0 [-d] [-v] option [files...]"
+ echo
+ echo "\t-d disable option, if present"
+ echo "\t-v tell which files are being edited, and how"
+ echo
+ echo "\tBy default, files... will be '???.tex'."
+ echo "\tThis will match each of the Python manuals."
+ echo
+ exit 2
+}
+
+editing() {
+ # tell the user what we're doing
+ if $VERBOSE ; then
+ echo $1 $FILE...
+ fi
+}
+
+addoption() {
+ # add an option not already present
+ editing "adding to"
+ (sed 's/^\(\\documentclass[[].*\)]/\1,'$OPTION']/
+s/^\\documentclass{/\\documentclass['$OPTION']{/' $FILE >temp-$$ \
+ && mv temp-$$ $FILE) || exit $?
+}
+
+remoption() {
+ # remove an option currently on
+ editing "removing from"
+ (sed 's/^\(\\documentclass[[].*\),'$OPTION'\([],]\)/\1\2/
+s/^\\documentclass[[]'$OPTION']/\\documentclass{/
+s/^\\documentclass[[]'$OPTION',/\\documentclass[/' $FILE >temp-$$ \
+ && mv temp-$$ $FILE) || exit $?
+}
+
+chkoption() {
+ # return true iff the option is already on
+ egrep '^\\documentclass[[]([A-Za-z0-9]*,)*'$OPTION'[],]' $FILE >/dev/null
+ return $?
+}
+
+# parse the command line...
+while [ "$#" -gt 0 ] ; do
+ case "$1" in
+ -d)
+ SETOPTION=false
+ shift
+ ;;
+ -v)
+ VERBOSE=true
+ shift
+ ;;
+ -*)
+ usage
+ ;;
+ *)
+ break;
+ ;;
+ esac
+done
+if [ -z "$1" ] ; then
+ usage
+fi
+
+# setup variables
+OPTION="$1"
+shift
+FILES=${1:+$*}
+if [ "$FILES" = '' ] ; then
+ FILES=`echo ???.tex`
+fi
+
+# check each file and do the work as required
+for FILE in $FILES ; do
+ if chkoption ; then
+ if $SETOPTION ; then
+ :
+ else
+ remoption
+ fi
+ elif $SETOPTION ; then
+ addoption
+ fi
+done