summaryrefslogtreecommitdiff
path: root/12_Prompts.zsh
diff options
context:
space:
mode:
authorHugues Hiegel <hugues@hiegel.fr>2010-09-22 11:50:39 +0200
committerHugues Hiegel <hugues@hiegel.fr>2010-09-22 11:50:39 +0200
commit65246f791fb0ebd4c723b35077fed4c68ff3bd08 (patch)
treec60f8929e9c991695f3cf9a998f9a786e0cd503d /12_Prompts.zsh
parent69be51eefa7d573c331a2e9a46268205e7c10592 (diff)
[Prompts] corrects prompt lines calculation
Diffstat (limited to '12_Prompts.zsh')
-rw-r--r--12_Prompts.zsh10
1 files changed, 4 insertions, 6 deletions
diff --git a/12_Prompts.zsh b/12_Prompts.zsh
index b3e0806..0ebc21f 100644
--- a/12_Prompts.zsh
+++ b/12_Prompts.zsh
@@ -30,15 +30,14 @@ set_prompt_colors
expand_text()
{
- # strips the %{...%}
- print -Pn -- "$(echo $@ | sed 's/%{[^(%})]*%}//g')"
+ # strips the %{...%} and newlines characters
+ print -Pn -- "$(echo $@ | tr -d '\n' | sed 's/%{[^(%})]*%}//g')"
}
preexec ()
{
term_title "$(echo $1 | tr ' \n' ' ;' | sed 's/%/%%/g;s/\\/\\\\/g;s/;$//')"
- local lines="$(expand_text "$PROMPT$1" | sed "s/\\(.\{$COLUMNS\}\\)/\\1\\n/g" | wc -l)"
prompt_colors[date]=$date_colors[exec]
set_prompt_date
prompt_colors[date]=$date_colors[normal]
@@ -51,9 +50,8 @@ preexec ()
done
redefine_prompt
- local string="$(expand_text "$PROMPT$1")"
- local lines=$(( (${#string} - 1) / $COLUMNS + $(echo ${string} | wc -l) - 2 ))
- for i in {0..$lines} ; print -Pn "\e[1A\e[2K"
+ local lines="$(($(expand_text "$PROMPT$1" | sed "s/\\(.\{0,$COLUMNS\}\\)/\\1\\n/g" | wc -l)))"
+ for i in {1..$lines} ; print -Pn "\e[1A\e[2K"
print -Pn "\r$PROMPT"
print -Pn "$C_$color[cyan]$_C"
print "${(q)1}" | sed "s/'$//;s/^'//"