0514
  "   ˆl–Ü4ý()¨‰P@Š7rà@¦-ÿÌƒh¹ÆÉ      0
  9   ˆl–Ü4ý(&ÔËm
�ÆŸ¸ÓêbÑ¿Íƒ}À=a–Ü4ý()¨‰P@Š7rã.)‹FÿË %ˆ    # bash completion for bluez utils                          -*- shell-script -*-

_bluetooth_addresses()
{
    if [[ -n ${COMP_BLUETOOTH_SCAN:-} ]]; then
        COMPREPLY+=($(compgen -W "$(hcitool scan |
            awk '/^\t/{print $1}')" -- "$cur"))
    fi
}

_bluetooth_devices()
{
    COMPREPLY+=($(compgen -W "$(hcitool dev |
        awk '/^\t/{print $1}')" -- "$cur"))
}

_bluetooth_services()
{
    COMPREPLY=($(compgen -W 'DID SP DUN LAN FAX OPUSH FTP HS HF HFAG SAP NAP
        GN PANU HCRP HID CIP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE SYNCML' \
        -- "$cur"))
}

_bluetooth_packet_types()
{
    COMPREPLY=($(compgen -W 'DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3' \
        -- "$cur"))
}

_hcitool()
{
    local cur prev words cword split
    _init_completion -s || return

    case $prev in
        -i)
            _bluetooth_devices
            return
            ;;
        --role)
            COMPREPLY=($(compgen -W 'm s' -- "$cur"))
            return
            ;;
        --pkt-type)
            _bluetooth_packet_types
            return
            ;;
    esac

    $split && return

    local arg
    _get_first_arg
    if [[ -z $arg ]]; then
        if [[ $cur == -* ]]; then
            COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
        else
            COMPREPLY=($(compgen -W 'dev inq scan name info spinq epinq cmd
                con cc dc sr cpt rssi lq tpl afh lst auth enc key clkoff
                clock' -- "$cur"))
        fi
    else
        local args
        case $arg in
            name | info | dc | rssi | lq | afh | auth | key | clkoff | lst)
                _count_args
                if ((args == 2)); then
                    _bluetooth_addresses
                fi
                ;;
            cc)
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W '--role --pkt-type' -- "$cur"))
                else
                    _count_args
                    if ((args == 2)); then
                        _bluetooth_addresses
                    fi
                fi
                ;;
            sr)
                _count_args
                if ((args == 2)); then
                    _bluetooth_addresses
                else
                    COMPREPLY=($(compgen -W 'master slave' -- "$cur"))
                fi
                ;;
            cpt)
                _count_args
                if ((args == 2)); then
                    _bluetooth_addresses
                else
                    _bluetooth_packet_types
                fi
                ;;
            tpl | enc | clock)
                _count_args
                if ((args == 2)); then
                    _bluetooth_addresses
                else
                    COMPREPLY=($(compgen -W '0 1' -- "$cur"))
                fi
                ;;
        esac
    fi
} &&
    complete -F _hcitool hcitool

_sdptool()
{
    local cur prev words cword split
    _init_completion -s || return

    case $prev in
        --bdaddr)
            _bluetooth_addresses
            return
            ;;
    esac

    $split && return

    local arg
    _get_first_arg
    if [[ -z $arg ]]; then
        if [[ $cur == -* ]]; then
            COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
        else
            COMPREPLY=($(compgen -W 'search browse records add del get
                setattr setseq' -- "$cur"))
        fi
    else
        case $arg in
            search)
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W '--bdaddr --tree --raw --xml' \
                        -- "$cur"))
                else
                    _bluetooth_services
                fi
                ;;
            browse | records)
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W '--tree --raw --xml' -- "$cur"))
                else
                    _bluetooth_addresses
                fi
                ;;
     