+function __ps1_short() {
+ local home=${HOME%%/}
+ local pwd=${PWD/#$home/\~}
+ local dirtrim=${PROMPT_DIRTRIM//[^0-9]/}
+
+ if [ "${dirtrim:0:1}" = "0" ]; then
+ echo "$pwd"
+ return $1
+ fi
+
+ dirtrim=${dirtrim##0}
+ if [ -z "$dirtrim" ]; then
+ local prompt="$USER$HOSTNAME$pwd"
+ local width=$(((COLUMNS*2)/3))
+ if [ ${#prompt} -le ${width:-53} ]; then
+ echo "$pwd"
+ return $1
+ else
+ dirtrim=1
+ fi
+ fi
+
+ local dirname=${pwd##*/}
+ local basename=${pwd%/$dirname}
+ local reversed=
+ local component
+ for component in ${basename//\// }; do
+ reversed="$component $reversed"
+ done
+ local n=1
+ local short=
+ for component in $reversed; do
+ [ $n = 1 -a "$PWD" = "$pwd" ] || short="/$short"
+ if [ $n -ge $dirtrim ]; then
+ short="${component:0:1}$short"
+ else
+ short="$component$short"
+ fi
+ n=$((n+1))
+ done
+
+ [ "${short:0:1}" = "~" ] || short="/$short"
+ echo "$short/$dirname"
+ return $1
+}
+