X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=.shellrc;h=9a484c15d96f836e0362a4004b71128e7e81dfda;hb=23883102f04772136742d2280a8bde5fe1fb8eba;hp=af5408c81420d3d997e0b6afdd6fc28a7da74e18;hpb=1167632cd826a30bc310ed66a3d04a8ef19b9777;p=dotfiles.git diff --git a/.shellrc b/.shellrc index af5408c..9a484c1 100644 --- a/.shellrc +++ b/.shellrc @@ -221,7 +221,27 @@ if test -x /usr/bin/git >/dev/null 2>&1; then return 1 fi - cdgitpath remote.$remote.url + if git config --get remote.$remote.url | grep -q '^\(/\|\.\./\)'; then + cdgitpath remote.$remote.url + else + + local GIT_REMOTES remote + GIT_REMOTES="" + for remote in `git remote`; do + if git config --get remote.$remote.url | grep -q '^\(/\|\.\./\)'; then + GIT_REMOTES="$GIT_REMOTES $remote" + fi + done + GIT_REMOTES=($GIT_REMOTES) + if [ ${#GIT_REMOTES[*]} -eq 1 ]; then + remote=${GIT_REMOTES[0]} + cdgitpath remote.$remote.url + else + echo "Cannot find directory for any remote" >&2 + echo "Usage: cdremote [remote_name]" >&2 + return 1 + fi + fi } if test -n "$BASH_VERSION"; then @@ -327,10 +347,6 @@ mc() { case "$TERM" in screen*) # screen, screen.rxvt - if [ "$TERM" = screen.rxvt ]; then - MC_SAVE_TERM="$TERM" - TERM=rxvt - fi MC_XTERM="-x" ;; esac @@ -382,9 +398,7 @@ mc() { fi [ -n "$MC_SAVE_OPS1" ] && OPS1="$MC_SAVE_OPS1" - [ -n "$MC_SAVE_TERM" ] && TERM="$MC_SAVE_TERM" - unset MC_FOUND MC_PWD_FILE MC_SAVE_OPS1 MC_SAVE_TERM \ - MC_SLOW MC_TMP_DIR MC_XTERM + unset MC_FOUND MC_PWD_FILE MC_SAVE_OPS1 MC_SLOW MC_TMP_DIR MC_XTERM return $rc }