# b ; cd to bookmark.
# bm ; add bookmark,
# brm ; remove bookmark,
# bclear ; remove all bookmarks,
# bl ; list bookmarks,
# bf ; find bookmark.


bm ()
{
  if [ -z $1 ]; then
    1=`basename $PWD`
  fi
  export $1="`pwd`"
  bmlist=`for i in $bmlist $1; do echo $i; done | sort -u`
  export bmlist
}

brm ()
{
  for j in $@; do
    export $j=
    bmlist=`for i in $bmlist; do if [ $i != $j ]; then echo $i; fi; done | sort -u`
  done
  export bmlist
}

bl ()
{
  for i in $bmlist; do
    p="echo \$${i}"
    echo "  ${COLOR_RED}$i#${COLOR_BLUE}-->#${COLOR_DARK_CYAN}`eval $p`${COLOR_NEUTRAL}"
  done | column -s \# -t
}

bf ()
{
  bl | egrep $@
}

bclear ()
{
  #todo; unset all variables
  export bmlist=
}

b ()
{
  p="echo \$$1"
  if echo $bmlist | egrep -q "\b$1\b"; then
    cd "`eval $p`"
  else
    echo $COLOR_RED unknown bookmark: $1 $COLOR_NEUTRAL
  fi
}

_bookmark_completion () {
  reply=(`echo $bmlist | sed -re 's/ *$//'`)
}

# Add zsh completion:

compctl -K _bookmark_completion b
compctl -K _bookmark_completion brm