about summary refs log tree commit diff
path: root/Completion/Unix/Type/_dir_list
blob: 574e8a2af5ecf8047eeca27d820436f78f76e0bf (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
#compdef -value-,TERMINFO_DIRS,-default- -P -value-,*PATH,-default-

# 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\-' -/ "$@"