From 853773820766a69d7a15c1c0349e6d24de553322 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 3 Apr 2022 18:34:02 +0200 Subject: 49966: _adb: Parse device spec correctly This was particularly annoying when trying to complete logtags after adb logcat -s --- Completion/Unix/Command/_adb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'Completion') diff --git a/Completion/Unix/Command/_adb b/Completion/Unix/Command/_adb index b8b2470a6..b31b84c89 100644 --- a/Completion/Unix/Command/_adb +++ b/Completion/Unix/Command/_adb @@ -82,6 +82,7 @@ _adb() { if ! adb ${ADB_DEVICE_SPECIFICATION} shell exit 2>/dev/null; then # early bail-out until a single valid device/emulator is specified and up-and-running [[ $words[CURRENT-1] = -s ]] || _message -r "No (started) device specified, completions do not yet work" + #TODO handle -t transport-id _arguments \ '-s[serial]: :_adb_device_serial' \ '( -e)-d[device]' \ @@ -165,13 +166,11 @@ _adb_sanitize_context () { (( $+functions[_adb_device_specification] )) || _adb_device_specification () { - local -a word - word=($words[(R)-[des]]) - if [[ $words[(R)-s] == -s ]]; then - local i=$words[(I)-s] - word=($words[i,i+1]) + if [[ $words[2] == -[de] ]]; then + ADB_DEVICE_SPECIFICATION=($words[2]) + elif [[ $words[2] == -[st] ]]; then + ADB_DEVICE_SPECIFICATION=($words[2,3]) fi - ADB_DEVICE_SPECIFICATION=($word) } (( $+functions[_adb_dispatch_shell] )) || -- cgit 1.4.1