git://git.iain.cx/iain
/
profile.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Set PROMPT_DIRTRIM dynamically.
[profile.git]
/
.profile.d
/
ps1.bashrc
diff --git
a/.profile.d/ps1.bashrc
b/.profile.d/ps1.bashrc
index
0283611
..
0667d0f
100644
(file)
--- a/
.profile.d/ps1.bashrc
+++ b/
.profile.d/ps1.bashrc
@@
-201,11
+201,24
@@
function __ps1_colon() {
function __ps1_short() {
local dirtrim=${PROMPT_DIRTRIM//[^0-9]/}
function __ps1_short() {
local dirtrim=${PROMPT_DIRTRIM//[^0-9]/}
- dirtrim=${dirtrim##0}
- if [
-z "$dirtrim
" ]; then
+
+ if [
"${dirtrim:0:1}" = "0
" ]; then
echo "$PWD"
return $1
fi
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 dirname=${PWD##*/}
local basename=${PWD%/$dirname}
local reversed=
@@
-223,6
+236,7
@@
function __ps1_short() {
fi
n=$((n+1))
done
fi
n=$((n+1))
done
+
echo "$short/$dirname"
return $1
}
echo "$short/$dirname"
return $1
}