if type -p findup >/dev/null; then
 function mycd() {
  local _f1 _f2 _f1d _f2d _f _d _pwd
  if test -z "$*"; then builtin cd ; else
    test -f "$*" && builtin cd `dirname $*` || builtin cd $*
  fi
  _f1=`findup .df-setup`
  _f2=`findup .kdab-setup`
  if test -n "$_f1"; then
    _f1d=`dirname $_f1`
  fi
  if test -n "$_f2"; then
    _f2d=`dirname $_f2`
  fi

  if test ${#_f1d} -ge ${#_f2d}; then
     _f=$_f1
     _d=$_f1d
  else
     _f=$_f2
     _d=$_f2d
  fi

  if test -n "$_f" && test "$_lastf" != "`realpath $_f`"; then
    _pwd="$PWD"
    builtin cd "$_d"
    echo "Loading $_f"
    _lastf="`realpath $_f`"
    source "$_f"
    builtin cd "$_pwd"
  fi
 }

 function cd() { mycd $* }

fi

