about summary refs log tree commit diff
path: root/Completion/Unix/Type/_dir_list
blob: ecd7c73daf24521547a847dc8c66951536f9b076 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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\-' -/ "$@"