From 579eb66ce74a0823f4e1f76ccba5f15c3497b1e7 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 21 Oct 2012 21:56:38 -0400 Subject: Add "common" and "load" library modules. --- (limited to 'lib/common.sh') diff --git a/lib/common.sh b/lib/common.sh new file mode 100644 index 0000000..14762db --- /dev/null +++ b/lib/common.sh @@ -0,0 +1,50 @@ +# opkhelper +# lib/common +# Functions for stack memory management. +# +# Copyright (C) 2012 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +[ -n "${_OH_COMMON_SM}" ] && return 0 +_OH_COMMON_SM='true' + +_OH_STACK_VARS= +_OH_SAVED_IFS= + +_oh_local() +{ + # Push the variable list onto the stack. + _OH_STACK_VARS="${_OH_STACK_VARS}|${*}" + + # Save the old IFS value, if any, and set it to its default. + _OH_SAVED_IFS="${IFS}" + IFS=' +' +} + +_oh_return() +{ + # Unset the variables at the top of the stack. + IFS=' ' + unset -v ${_OH_STACK_VARS##*|} + + # Pop the variable list from the top of the stack. + _OH_STACK_VARS="${_OH_STACK_VARS%|*}" + + # Restore the saved IFS. + IFS="${_OH_SAVED_IFS}" + + return ${1} +} -- cgit v0.9.1