_boom_complete() {
    local cur prev lists
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

    lists=`boom | awk '{print $1}'`

    case "${prev}" in
      boom)
        COMPREPLY=( $(compgen -W "${lists}" -- ${cur}) )
        return 0
        ;;
      *)
        for ((i = 0; i < ${#lists}; i++)); do
          local items=`boom $prev | awk '{print $1}' | sed -e 's/://'`
          COMPREPLY=( $(compgen -W "${items}" -- ${cur}))
          return 0
        done
        ;;
    esac
}
complete -F _boom_complete boom

_boom_complete() {
    local cur prev lists curr_list items
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    curr_list=`eval echo "$prev"`
    local IFS=$'\n'

    if [ $COMP_CWORD -eq 1 ]; then
        lists=`boom | sed 's/^  \(.*\) ([0-9]\+)$/\1/'`
        COMPREPLY=( $( compgen -W '${lists}' -- ${cur} ) )
    elif [ $COMP_CWORD -eq 2 ]; then
        items=`boom $curr_list | sed 's/^    \(.\{0,16\}\):.*$/\1/'`
        COMPREPLY=( $( compgen -W '${items}' -- ${cur} ) )
    fi
}
complete -o filenames -F _boom_complete boom

Fix bash completion to handle spaces and special characters
Fix bash completion to handle spaces and special characters
