diff --git a/bashrc b/bashrc index 7d15a48..e186a12 100755 --- a/bashrc +++ b/bashrc @@ -235,7 +235,7 @@ cd(){ __dirs_rm_dup(){ for d in "$@" do - local next="$(realpath --no-symlinks "$d")" + local next="$(__realpath --strip "$d")" for l in $(\dirs -v -l | cut -d " " -f 2- | \grep -x " *[0-9]\+ \+${next}" | \grep -o "^ *[0-9]\+ " | tac) do @@ -244,6 +244,22 @@ __dirs_rm_dup(){ done } +__realpath(){ + if type realpath >/dev/null 2>&1 + then + command realpath "$@" + else + while ! test -d $1 + do + shift + done + local d="$OLDPWD" + command cd "$1" + echo "$PWD" + command cd "$d" + fi +} + dh(){ if test $# -eq 0 then @@ -421,7 +437,7 @@ o(){ else for f in "$@" do - open_file "$f" + open_file "$(realpath "$f")" done fi } diff --git a/setup.sh b/setup.sh index 3c7499a..513bda4 100755 --- a/setup.sh +++ b/setup.sh @@ -61,6 +61,7 @@ git_config(){ # git config --global alias.my-ls "ls-files | xargs ls" # git config --global alias.ll "!git ls-files | xargs ls -l -CFG --color=auto --time-style=long-iso" git config --global alias.addi "add -i" + git config --global alias.clean-p "!test -z \"\$(git status -s -uno)\"" if false iswindows; then git config --global core.fileMode false fi