fix(fossil): refactor fossil_prompt_info and quote % in branch

This commit is contained in:
Marc Cornellà 2022-01-03 14:00:54 +01:00
parent 1c53ef0583
commit a280726d93
No known key found for this signature in database
GPG key ID: 0314585E776A9C1B

View file

@ -13,23 +13,25 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔" ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
function fossil_prompt_info() { function fossil_prompt_info() {
local _OUTPUT=`fossil branch 2>&1` local info=$(fossil branch 2>&1)
local _STATUS=`echo $_OUTPUT | grep "use --repo"`
if [ "$_STATUS" = "" ]; then
local _EDITED=`fossil changes`
local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'`
if [ "$_EDITED" != "" ]; then # if we're not in a fossil repo, don't show anything
_EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY" ! command grep -q "use --repo" <<< "$info" || return
fi
echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \ local branch=$(echo $info | grep "* " | sed 's/* //g')
"$_BRANCH" \ local changes=$(fossil changes)
"$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \ local dirty="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
"$_EDITED_SYM"\
"%{$reset_color%}" if [[ -n "$changes" ]]; then
dirty="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
fi fi
printf '%s %s %s %s %s' \
"$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
"${branch:gs/%/%%}" \
"$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
"$dirty" \
"%{$reset_color%}"
} }
function _fossil_prompt () { function _fossil_prompt () {