From f5444229e95e643c4bc01908081d410f81a29f8c Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 14 Mar 2009 14:43:49 +0100 Subject: xsource: Added -e option to preserve parameters --- etc/functions/xsource | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'etc/functions') 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 + } } -- cgit v1.2.3