summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/common.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/common.sh b/lib/common.sh
index 1488bd7..78f1c62 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -21,21 +21,30 @@
_OB_COMMON_SM='true'
_OB_STACK_VARS=
+_OB_SAVED_IFS=
_ob_local()
{
# Push the variable list onto the stack.
_OB_STACK_VARS="${_OB_STACK_VARS}|${*}"
+
+ # Save the old IFS value, if any, and set it to its default.
+ _OB_SAVED_IFS="${IFS}"
+ unset IFS
}
_ob_return()
{
# Unset the variables at the top of the stack.
+ IFS=' '
unset -v ${_OB_STACK_VARS##*|}
# Pop the variable list from the top of the stack.
_OB_STACK_VARS="${_OB_STACK_VARS%|*}"
+ # Restore the saved IFS.
+ IFS="${_OB_SAVED_IFS}"
+
return ${1}
}