diff options
Diffstat (limited to 'etc/functions')
-rwxr-xr-x | etc/functions/xsource | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/etc/functions/xsource b/etc/functions/xsource index 2546965..50ad5be 100755 --- a/etc/functions/xsource +++ b/etc/functions/xsource @@ -1,8 +1,22 @@ ## vim:ft=zsh # Note: This function's behaviour differs hrom source. # With source, parameters declared local are available to the sourcing script. -# With xsource, parameters declared local will NOT be available. -# Keep that in mind when using this function +# With xsource, parameters declared local will NOT be available unless you use +# eval $(xsource -e file) +typeset -i eval=0 + +while [[ $1 == -* ]] { + case $1 in + -e) eval=1 ;; + esac + shift +} + + if [[ -r $1 ]] { - source $1 + if (( eval )) { + echo source $1 + } else { + source $1 + } } |