summaryrefslogtreecommitdiff
path: root/etc/functions/xsource
diff options
context:
space:
mode:
Diffstat (limited to 'etc/functions/xsource')
-rwxr-xr-xetc/functions/xsource16
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'