aboutsummaryrefslogtreecommitdiffhomepage
path: root/isar/interface
diff options
context:
space:
mode:
authorGravatar Makarius Wenzel <makarius@sketis.net>2009-05-30 20:56:04 +0000
committerGravatar Makarius Wenzel <makarius@sketis.net>2009-05-30 20:56:04 +0000
commit6d278e30b43a1d060f21e9b39d8cfecebebb5d61 (patch)
treecc75f4db48f1226c8c9fed122cc1a0a551f88074 /isar/interface
parent21e826b7cc3076364d72f6d4e453d4ffffed0982 (diff)
more robust treatment of options and arguments (via arrays and special @ expansion) -- allows spaces within parameters;
Diffstat (limited to 'isar/interface')
-rw-r--r--isar/interface32
1 files changed, 17 insertions, 15 deletions
diff --git a/isar/interface b/isar/interface
index bb9a0971..9ca83f3b 100644
--- a/isar/interface
+++ b/isar/interface
@@ -128,7 +128,8 @@ getoptions()
done
}
-getoptions $PROOFGENERAL_OPTIONS
+eval "OPTIONS=($PROOFGENERAL_OPTIONS)"
+getoptions "${OPTIONS[@]}"
getoptions "$@"
shift $(($OPTIND - 1))
@@ -136,12 +137,13 @@ shift $(($OPTIND - 1))
# args
+declare -a FILES=()
+
if [ "$#" -eq 0 ]; then
- FILES="Scratch.thy"
+ FILES+=("Scratch.thy")
else
- FILES=""
while [ "$#" -gt 0 ]; do
- FILES="$FILES '$1'"
+ FILES+=("$1")
shift
done
fi
@@ -177,14 +179,14 @@ if [ "$START_PG" = false ]; then
else
- ARGS=""
+ declare -a ARGS=()
- [ -n "$GEOMETRY" ] && ARGS="$ARGS -geometry '$GEOMETRY'"
+ [ -n "$GEOMETRY" ] && ARGS+=("-geometry" "$GEOMETRY")
- [ "$INITFILE" = false ] && ARGS="$ARGS -q"
+ [ "$INITFILE" = false ] && ARGS+=("-q")
if [ "$WINDOWSYSTEM" = false ]; then
- ARGS="$ARGS -nw"
+ ARGS+=("-nw")
XSYMBOL=false
elif [ -z "$DISPLAY" ]; then
XSYMBOL=false
@@ -192,26 +194,26 @@ else
[ -n "$XSYMBOL_INSTALLFONTS" -a "$XSYMBOL_SETUP" = true ] && installfonts
fi
- ARGS="$ARGS -l '$SUPER/isar/interface-setup.el'"
+ ARGS+=("-l" "$SUPER/isar/interface-setup.el")
if [ -n "$KEYWORDS" ]; then
if [ -f "$ISABELLE_HOME_USER/etc/isar-keywords-$KEYWORDS.el" ]; then
- ARGS="$ARGS -l '$ISABELLE_HOME_USER/etc/isar-keywords-$KEYWORDS.el'"
+ ARGS+=("-l" "$ISABELLE_HOME_USER/etc/isar-keywords-$KEYWORDS.el")
elif [ -f "$ISABELLE_HOME/etc/isar-keywords-$KEYWORDS.el" ]; then
- ARGS="$ARGS -l '$ISABELLE_HOME/etc/isar-keywords-$KEYWORDS.el'"
+ ARGS+=("-l" "$ISABELLE_HOME/etc/isar-keywords-$KEYWORDS.el")
else
fail "No isar-keywords file for '$KEYWORDS'"
fi
elif [ -f "$ISABELLE_HOME_USER/etc/isar-keywords.el" ]; then
- ARGS="$ARGS -l '$ISABELLE_HOME_USER/etc/isar-keywords.el'"
+ ARGS+=("-l" "$ISABELLE_HOME_USER/etc/isar-keywords.el")
elif [ -f "$ISABELLE_HOME/etc/isar-keywords.el" ]; then
- ARGS="$ARGS -l '$ISABELLE_HOME/etc/isar-keywords.el'"
+ ARGS+=("-l" "$ISABELLE_HOME/etc/isar-keywords.el")
fi
for FILE in "$ISABELLE_HOME/etc/proofgeneral-settings.el" \
"$ISABELLE_HOME_USER/etc/proofgeneral-settings.el"
do
- [ -f "$FILE" ] && ARGS="$ARGS -l '$FILE'"
+ [ -f "$FILE" ] && ARGS+=("-l" "$FILE")
done
case "$LOGIC" in
@@ -230,6 +232,6 @@ else
export ISABELLE_OPTIONS XSYMBOL_FONTSIZE
- eval exec "$PROGNAME" "$ARGS" "$FILES"
+ exec "$PROGNAME" "${ARGS[@]}" "${FILES[@]}"
fi