about summary refs log tree commit diff
path: root/Completion/Unix/Type
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-06-13 11:08:54 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-06-13 11:08:54 +0000
commitd8144700423a6a9b390718fa51c4c93f01e4ae2f (patch)
treecc81d55f75a961c815c8a3a882db118b1a0183b6 /Completion/Unix/Type
parent874a12ae7aa286a7e09ea6e975cfa16e18103b97 (diff)
downloadzsh-d8144700423a6a9b390718fa51c4c93f01e4ae2f.tar.gz
zsh-d8144700423a6a9b390718fa51c4c93f01e4ae2f.tar.xz
zsh-d8144700423a6a9b390718fa51c4c93f01e4ae2f.zip
*** empty log message ***
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r--Completion/Unix/Type/_dir_list27
1 files changed, 27 insertions, 0 deletions
diff --git a/Completion/Unix/Type/_dir_list b/Completion/Unix/Type/_dir_list
new file mode 100644
index 000000000..ecd7c73da
--- /dev/null
+++ b/Completion/Unix/Type/_dir_list
@@ -0,0 +1,27 @@
+#autoload
+
+# options:
+#  -s <sep> to specify the separator (default is a colon)
+#  -S       to say that the separator should be added as a suffix (instead
+#           of the default slash)
+
+local sep=: dosuf suf
+
+while [[ "$1" = -(s*|S) ]]; do
+  case "$1" in
+  -s)  sep="$2"; shift 2;;
+  -s*) sep="${1[3,-1]}"; shift;;
+  -S)  dosuf=yes; shift;;
+  esac
+done
+
+compset -P "*${sep}"
+compset -S "${sep}*" || suf="$sep"
+
+if [[ -n "$dosuf" ]]; then
+  suf=(-S "$suf")
+else
+  suf=()
+fi
+
+_files "$suf[@]" -r "${sep}"' /\t\t\-' -/ "$@"