_boom_complete() {
  local cur prev lists
  COMPREPLY = ()
  cur = "${COMP_WORDS[COMP_WORD]}"
  prev = "${COMP_WORDS[COMP_WORD - 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_WORD]}"
  prev = "${COMP_WORDS[COMP_WORD - 1]}"
  curr_list = `eval echo "$prev"`
  local IFS=$'\n'

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

  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
