Skip to content

Commit 9833d3f

Browse files
nkakourosniieani
authored andcommitted
Fix unbound variables (#33)
* Sets default values to variables * Adds default value to l equal to the parameter length * Checks if boolean prefix is defined and use "true" or "false" otherwise
1 parent f9eed61 commit 9833d3f

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

lib/util/namedParameters.sh

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Variable::TrapAssignNumberedParameter() {
5050
local varValue="${varDeclaration#*=}"
5151
# TODO: checking for parameter existence or default value
5252

53-
if [[ ! -z $__assign_varType ]]
53+
if [[ "${__assign_varType:-null}" != "null" ]]
5454
then
5555
local requiredType="$__assign_varType" ## TODO: use this information
5656
[[ $__assign_parameters == '-n' ]] && __assign_varType="reference"
@@ -88,6 +88,7 @@ Variable::TrapAssignNumberedParameter() {
8888
case "$__assign_varType" in
8989
'params')
9090
# passing array:
91+
eval "__assign_arrLength=$__assign_arrLength"
9192
eval "$__assign_varName=( \"\${@:$__assign_paramNo:$__assign_arrLength}\" )"
9293

9394
## TODO: foreach param expand $var: indirectAccess
@@ -100,23 +101,25 @@ Variable::TrapAssignNumberedParameter() {
100101
;;
101102
'boolean')
102103
DEBUG Log passed "${!indirectAccess}", default "${__assign_varValue}"
104+
local boolean_fingerprint="${__primitive_extension_fingerprint__boolean:+__primitive_extension_fingerprint__boolean:}"
105+
103106
if [[ ! -z "${!indirectAccess}" ]]
104107
then
105-
if [[ "${!indirectAccess}" == "${__primitive_extension_fingerprint__boolean}:"* ]]
108+
if [[ "${!indirectAccess}" == "${boolean_fingerprint}"* ]]
106109
then
107110
__assign_varValue="${!indirectAccess}"
108111
elif [[ "${!indirectAccess}" == 'true' || "${!indirectAccess}" == 'false' ]]
109112
then
110-
__assign_varValue="${__primitive_extension_fingerprint__boolean}:${!indirectAccess}"
113+
__assign_varValue="${boolean_fingerprint}${!indirectAccess}"
111114
else
112-
__assign_varValue="${__primitive_extension_fingerprint__boolean}:false"
115+
__assign_varValue="${boolean_fingerprint}false"
113116
fi
114117
elif [[ "${__assign_varValue}" == 'true' || "${__assign_varValue}" == 'false' ]]
115118
then
116-
__assign_varValue="${__primitive_extension_fingerprint__boolean}:${__assign_varValue}"
117-
elif [[ "${__assign_varValue}" != "${__primitive_extension_fingerprint__boolean}:true" && "${__assign_varValue}" != "${__primitive_extension_fingerprint__boolean}:false" ]]
119+
__assign_varValue="${boolean_fingerprint}${__assign_varValue}"
120+
elif [[ "${__assign_varValue}" != "${boolean_fingerprint}true" && "${__assign_varValue}" != "${boolean_fingerprint}false" ]]
118121
then
119-
__assign_varValue="${__primitive_extension_fingerprint__boolean}:false"
122+
__assign_varValue="${boolean_fingerprint}false"
120123
fi
121124
eval "$__assign_varName=\"${__assign_varValue}\""
122125
;;
@@ -198,10 +201,10 @@ Variable::InTrapCaptureParameters() {
198201
# subject="parameters" Log --
199202

200203
__capture_type="$_type"
201-
__capture_arrLength="$l"
202-
__capture_valueRequired="$_isRequired"
203-
__capture_valueReadOnly="$_isReadOnly"
204-
__capture_noHandle="$_noHandle"
204+
__capture_arrLength="${l-'${#@}'}"
205+
__capture_valueRequired="${_isRequired-false}"
206+
__capture_valueReadOnly="${_isReadOnly-false}"
207+
__capture_noHandle="${_noHandle-false}"
205208
}
206209

207210
## ARGUMENT RESOLVERS ##

0 commit comments

Comments
 (0)