Change variable scope from "local" to "function" #152
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Inside the
__done_run_powershell_script
function, theif test $status -ne 0
block would set thepowershell_exe
variable with scope-l
(--local
), meaning that its value would be erased at the end of theif
block.done/conf.d/done.fish
Lines 32 to 36 in eb32ade
However, the updated value would then not be available in the subsequent part of the function and (in particular) would result in the following
if
block not being evaluated:done/conf.d/done.fish
Lines 38 to 44 in eb32ade
To verify this, I ran the function with
set_fish_trace
enabledAs seen above, the if evaluates the wrong value of the
powershell_exe
value (i.e.,''
) instead of the updated one (i.e.,/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
).Setting the variable scope to
-f
(--function
) fixes the issue by making the new value of thepowershell_exe
variable being available in the whole function block.