diff options
Diffstat (limited to 'etc/functions/xsource')
-rwxr-xr-x | etc/functions/xsource | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/etc/functions/xsource b/etc/functions/xsource index b5cd904..a892d36 100755 --- a/etc/functions/xsource +++ b/etc/functions/xsource @@ -2,11 +2,15 @@ # Since source in a function makes typeset'ed parameters local # (which is not what we want), we use a combination of functions # and aliases here: -# autoload xsource; alias x_source='source $xsource_files; unset xsource_files' +# autoload xsource; xsource # xsource file anotherfile && x_source -typeset file -(( ${#*} )) && unset xsource_files -for file in $*; { - [[ -r $file ]] && xsource_files=($xsource_files $file) +xsource() { + typeset file + (( ${#*} )) && unset xsource_files + for file in $*; { + [[ -r $file ]] && xsource_files=($xsource_files $file) + } + (( ${#xsource_files} )) || return 1 } -(( ${#xsource_files} )) || return 1 + +alias x_source='source $xsource_files; unset xsource_files' |