summaryrefslogtreecommitdiff
path: root/Completion/Builtins/_source
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Builtins/_source')
-rw-r--r--Completion/Builtins/_source15
1 files changed, 11 insertions, 4 deletions
diff --git a/Completion/Builtins/_source b/Completion/Builtins/_source
index aae2c7320..96b6c21bd 100644
--- a/Completion/Builtins/_source
+++ b/Completion/Builtins/_source
@@ -1,7 +1,14 @@
-#defcomp source
+#compdef source .
-if [[ -position 2 -1 ]]; then
- _normal "$@"
+if [[ CURRENT -ge 3 ]]; then
+ compset -n 2
+ _normal
else
- _files
+ if [[ -prefix */ && ! -o pathdirs ]]; then
+ _files
+ elif [[ $service = . ]]; then
+ _files -W path
+ else
+ _files -W "(. $path)"
+ fi
fi