summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2015-06-19 20:00:51 +0200
committerOliver Kiddle <opk@zsh.org>2015-06-19 20:00:51 +0200
commitdd7852089705e8228228f9e2fb69437b43ddb7e6 (patch)
tree1f2e4050c10f151c48c70b1a340c2757815b150b
parentb2de9b518e54c73b2832ad8e24d536f5c05be985 (diff)
downloadzsh-dd7852089705e8228228f9e2fb69437b43ddb7e6.tar.gz
zsh-dd7852089705e8228228f9e2fb69437b43ddb7e6.tar.xz
zsh-dd7852089705e8228228f9e2fb69437b43ddb7e6.zip
35531: fallback on file completion
-rw-r--r--ChangeLog2
-rw-r--r--Completion/Unix/Command/_adb26
2 files changed, 17 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 16daaab8e..45011327f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2015-06-19  Oliver Kiddle  <opk@zsh.org>
 
+	* 35531: Completion/Unix/Command/_adb: fallback on file completion
+
 	* 35527: Completion/Unix/Type/_email_addresses,
 	Completion/Zsh/Command/_fc, Completion/Zsh/Command/_zpty:
 	use list-separator style in cases where separator was hardcoded
diff --git a/Completion/Unix/Command/_adb b/Completion/Unix/Command/_adb
index e687762d3..88aca2464 100644
--- a/Completion/Unix/Command/_adb
+++ b/Completion/Unix/Command/_adb
@@ -76,7 +76,8 @@ _adb() {
 	'(-d -e   )-s[serial]: :_adb_device_serial' \
 	'(   -e -s)-d[device]' \
 	'(-d    -s)-e[emulator]' \
-	'*:"options":_adb_options_handler'
+	'1:"options":_adb_options_handler' \
+	'*: : _default'
       
       return;
   }
@@ -99,27 +100,30 @@ _adb_dispatch_command () {
   fi
 
   case ${curcontext} in
-    (*:adb:shell)
+    (*:adb-shell)
       (( $+functions[_adb_dispatch_shell] )) && _adb_dispatch_shell
       ;;
-    (*:adb:connect|*:adb:disconnect)
+    (*:adb-connect|*:adb-disconnect)
       (( $+functions[_adb_dispatch_connection_handling] )) && _adb_dispatch_connection_handling
       ;;
-    (*:adb:logcat)
+    (*:adb-logcat)
       (( $+functions[_adb_dispatch_logcat] )) && _adb_dispatch_logcat
       ;;
-    (*:adb:push)
+    (*:adb-push)
       (( $+functions[_adb_dispatch_push] )) && _adb_dispatch_push
       ;;
-    (*:adb:pull)
+    (*:adb-pull)
       (( $+functions[_adb_dispatch_pull] )) && _adb_dispatch_pull
       ;;
-    (*:adb:install)
+    (*:adb-install)
       (( $+functions[_adb_dispatch_install] )) && _adb_dispatch_install
       ;;
-    (*:adb:uninstall)
+    (*:adb-uninstall)
       (( $+functions[_adb_dispatch_uninstall] )) && _adb_dispatch_uninstall
       ;;
+    (*:adb-*)
+      _default
+      ;;
     (*)
       _arguments \
 	'(-d -e)-s["serial"]: :_adb_device_serial' \
@@ -143,7 +147,7 @@ _adb_sanitize_context () {
   done
   ##expand unquoted to remove sparse elements
   mywords=( ${mywords[@]} )
-  curcontext="${curcontext}${mywords[-1]}"
+  (( $#mywords )) && curcontext="${curcontext%:*}-${mywords[-1]}:"
 }
 
 (( $+functions[_adb_device_specification] )) ||
@@ -373,9 +377,9 @@ _adb_dispatch_connection_handling () {
   fi
 }
 
-(( $+functions[adb_check_log_redirect] )) ||
+(( $+functions[_adb_check_log_redirect] )) ||
 _adb_check_log_redirect () {
-  LOG_REDIRECT=${$(adb ${=ADB_DEVICE_SPECIFICATION} shell getprop log.redirect-stdio)//
+  LOG_REDIRECT=${$(adb ${=ADB_DEVICE_SPECIFICATION} shell getprop log.redirect-stdio 2>/dev/null)//
 /}
   [[ ${LOG_REDIRECT[1,4]} == "true" ]] &&  _message -r "Notice: stdio log redirection enabled on the device, so some completions will not work"
 }