diff options
-rw-r--r-- | eshtrans/eshrt/eshrtbegin.esh | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/eshtrans/eshrt/eshrtbegin.esh b/eshtrans/eshrt/eshrtbegin.esh index 9f7e59e..ef627d7 100644 --- a/eshtrans/eshrt/eshrtbegin.esh +++ b/eshtrans/eshrt/eshrtbegin.esh @@ -94,16 +94,16 @@ __fn_ctxsw() case "${__prev_vars}" in ?*) unset ${__prev_vars} ;; esac - eval "${__fn_var_vals}" + for __var in ${__fn_vars}; do + eval "${__var}=\${__fn_vars_${__fn_name}__${__var}}" + done } __fn_update_vars() { unset IFS for __var in ${__fn_vars}; do - __val="$(eval "printf '%s' \"\${${__var}}\"" | \ - sed "s|'|'\\\\''|g;")" - __fn_var_vals="${__fn_var_vals} ${__var}='${__val}'" + eval "__fn_vars_${__fn_name}__${__var}=\${${__var}}" done } |