Skip to content

Commit 696c4a5

Browse files
committed
fix(cd,mplayer): use _comp_{split,compgen}
1 parent a2353b1 commit 696c4a5

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

completions/cd

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,13 @@ _comp_cmd_cd()
3030
_comp_readline_variable_on mark-symlinked-directories && mark_symdirs=y
3131

3232
# we have a CDPATH, so loop on its contents
33-
for i in ${CDPATH//:/$'\n'}; do
33+
local paths dirs
34+
_comp_split -F : paths "$CDPATH"
35+
for i in "${paths[@]}"; do
3436
# create an array of matched subdirs
3537
k=${#COMPREPLY[@]}
36-
for j in $(compgen -d -- "$i/$cur"); do
38+
_comp_compgen -v dirs -c "$i/$cur" -- -d
39+
for j in "${dirs[@]}"; do
3740
if [[ ($mark_symdirs && -L $j || $mark_dirs && ! -L $j) && ! -d ${j#"$i/"} ]]; then
3841
j+="/"
3942
fi

completions/mplayer

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,11 @@ _comp_cmd_mplayer()
8585
dirs=(/usr/share/mplayer/skins /usr/local/share/mplayer/skins)
8686
fi
8787

88-
local IFS=$'\n'
88+
local -a subdirs
8989
for i in ~/.mplayer/skins "${dirs[@]}"; do
9090
if [[ -d $i && -r $i ]]; then
91-
for j in $(compgen -d -- "$i/$cur"); do
91+
_comp_compgen -v subdirs -c "$i/$cur" -- -d
92+
for j in "${subdirs[@]}"; do
9293
COMPREPLY[k++]=${j#"$i/"}
9394
done
9495
fi

0 commit comments

Comments
 (0)