about summary refs log tree commit diff
path: root/Completion/Builtins/_zftp
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Builtins/_zftp')
-rw-r--r--Completion/Builtins/_zftp29
1 files changed, 15 insertions, 14 deletions
diff --git a/Completion/Builtins/_zftp b/Completion/Builtins/_zftp
index 6246015ec..c0b19a796 100644
--- a/Completion/Builtins/_zftp
+++ b/Completion/Builtins/_zftp
@@ -13,8 +13,8 @@ local subcom expl curcontext="${curcontext}"
 
 if [[ $words[1] = zftp ]]; then
   if [[ $CURRENT -eq 2 ]]; then
-    _wanted commands expl sub-command &&
-        compadd "$expl[@]" open params user login type ascii binary mode put \
+    _wanted commands expl sub-command \
+        compadd open params user login type ascii binary mode put \
           putat get getat append appendat ls dir local remote mkdir rmdir \
           session rmsession
     return
@@ -28,49 +28,51 @@ fi
 case $subcom in
   *(cd|ls|dir))
     # complete remote directories
-    _tags directories && zfcd_match $PREFIX $SUFFIX
+    _wanted directories && zfcd_match $PREFIX $SUFFIX
     ;;
 
   *(get(|at)|gcp|delete|remote))
     # complete remote files
-    _tags files && zfget_match $PREFIX $SUFFIX
+    _wanted files && zfget_match $PREFIX $SUFFIX
     ;;
 
   *(put(|at)|pcp))
     # complete local files
-    _tags files && _files
+    _wanted files && _files
     ;;
 
   *(open|anon|params))
     # complete hosts:  should do cleverer stuff with user names
-    _tags hosts && _hosts
+    _wanted hosts && _hosts
     ;;
 
   *(goto|mark))
     # complete bookmarks.  First decide if ncftp mode is go.
-    _wanted bookmarks expl bookmark || return 1
+    _wanted bookmarks || return 1
     if [[ $words[2] = -*n* ]]; then
       if [[ -f ~/.ncftp/bookmarks ]]; then
-        compadd "$expl[@]" - $(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)
+        _loop bookmarks expl bookmark \
+            compadd - $(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)
       fi
     else
       if [[ -f ${ZFTP_BMFILE:=${ZDOTDIR:-$HOME}/.zfbkmarks} ]]; then
-        compadd "$expl[@]" - $(awk '{print $1}' $ZFTP_BMFILE)
+        _loop bookmarks expl bookmark \
+            compadd - $(awk '{print $1}' $ZFTP_BMFILE)
       fi
     fi
     ;;
 
   *session)
     # complete sessions, excluding the current one.
-    _wanted sessions expl 'another FTP session' &&
-        compadd "$expl[@]" - ${$(zftp session):#$ZFTP_SESSION}
+    _wanted sessions expl 'another FTP session' \
+        compadd - ${$(zftp session):#$ZFTP_SESSION}
     ;;
 
   *transfer)
     # complete arguments like sess1:file1 sess2:file2
     if [[ $PREFIX = *:* ]]; then
       # complete file in the given session
-      _tags files || return 1
+      _wanted files || return 1
       local sess=${PREFIX%%:*} oldsess=$ZFTP_SESSION
       compset -p $(( $#sess + 1 ))
       [[ -n $sess ]] && zftp session $sess
@@ -78,8 +80,7 @@ case $subcom in
       [[ -n $sess && -n $oldsess ]] && zftp session $oldsess
     else
       # note here we can complete the current session
-      _wanted sessions expl 'FTP session' &&
-          compadd "$expl[@]" -S : - $(zftp session)
+      _wanted sessions expl 'FTP session' compadd -S : - $(zftp session)
     fi
     ;;