From 5e3dcd8f29cf4ad653e69d50e1500a330bba8ca8 Mon Sep 17 00:00:00 2001 From: Andrew Robbins Date: Sat, 22 Jul 2017 01:51:01 -0400 Subject: Remove IFS binding masking a non-zero status code In project_action_arguments_recursive(), IFS bindings needed to be reworked in order to avoid a situation where, for example, project_extract() would fail to extract source archives (because they didn't exist), returning a status code of 1 only for it to be masked by a rebinding of IFS--which would always succeed. ifs_save and IFS were made local variables in project_action_arguments_recursive() in order to avoid the need to rebind IFS after the for loop returns. This patch makes './libreboot sources ' functional. --- libs/project | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libs/project b/libs/project index 8eaf0d2d..728b9118 100755 --- a/libs/project +++ b/libs/project @@ -187,16 +187,15 @@ project_action_arguments_recursive() { local action_helper_arguments local argument - local ifs_save action_helper_arguments="$(project_action_helper 'arguments' "${project}" "$@" || true)" if [[ -z "${action_helper_arguments}" ]]; then project_action "${action}" "${project}" "$@" else - # This it to allow space characters in arguments. - ifs_save="${IFS}" - IFS=$'\n' + # This is to allow space characters in arguments. + local ifs_save="${IFS}" + local IFS=$'\n' for argument in $(printf '%s\n' "${action_helper_arguments}") do @@ -207,8 +206,6 @@ project_action_arguments_recursive() { project_action_arguments_recursive "${action}" "${project}" "$@" "${argument}" ) done - - IFS="${ifs_save}" fi } -- cgit v1.2.3-70-g09d2