diff options
author | Michael Allen <michael@michaelallen.io> | 2015-08-26 13:39:39 +0100 |
---|---|---|
committer | Michael Allen <michael@michaelallen.io> | 2015-08-26 13:39:39 +0100 |
commit | 11e8ad4bdce9979eb871635bf455213788de5e05 (patch) | |
tree | 5907059a7ea660a1cc6644c943338ae10ee2c3c7 /prompt.bash | |
parent | 1faeef884d3660ca4048892fef0ef78997aad821 (diff) | |
download | git-sonar-11e8ad4bdce9979eb871635bf455213788de5e05.tar.gz git-sonar-11e8ad4bdce9979eb871635bf455213788de5e05.zip |
Bypass PS1s conversion of \[
In PS1 you need to escape non-printing characters, like the color codes.
The standard way is wrapping it in `\[` and `\]`. But for a dynamic
prompt, i.e. one that renders the results of a function every time the
prompt renders, that `\[` will be output as literals.
To fix this we bypass the conversion and wrap our non-printing
characters in the desired characters directly:
`\[` -> `\x01`
`\]` -> `\x02`
Diffstat (limited to '')
-rwxr-xr-x | prompt.bash | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/prompt.bash b/prompt.bash index 4ceaf22..4821319 100755 --- a/prompt.bash +++ b/prompt.bash @@ -4,12 +4,12 @@ dot="$(cd "$(dirname "$0")"; pwd)" source "$dot/radar-base.sh" if is_repo; then - printf " \[\033[1;30m\]git:(\[\033[0m\]" + printf " \x01\033[1;30m\x02git:(\x01\033[0m\x02" bash_color_remote_commits - printf "\[\033[0;37m\]" + printf "\x01\033[0;37m\x02" readable_branch_name - printf "\[\033[0m\]" + printf "\x01\033[0m\x02" bash_color_local_commits - printf "\[\033[1;30m\])\[\033[0m\]" + printf "\x01\033[1;30m\x02)\x01\033[0m\x02" bash_color_changes_status fi |