Squashed 'gitstatus/' changes from f1cf61b24..e02d9eedd

e02d9eedd fix cwd detection when it has weird characters
78c171590 Loongarch support (#290)
be6396b1a fix pkg_add command on openbsd (#282)
f1c89585a avoid ksh if possible (it's broken; see #282)
22407d6fd bug fix: correctly resolve pwd when it contains control chars

git-subtree-dir: gitstatus
git-subtree-split: e02d9eedd9d8f3689e6a6cdccec70b55cf87dca6
This commit is contained in:
Roman Perepelitsa 2022-01-04 12:14:19 +01:00
commit c8160f2954
2 changed files with 29 additions and 3 deletions

View file

@ -185,9 +185,21 @@ function gitstatus_query"${1:-}"() {
(( _GITSTATUS_STATE_$name == 2 )) || return
if [[ -z $GIT_DIR ]]; then
[[ $dir == /* ]] || dir=${(%):-%/}/$dir
if [[ $dir != /* ]]; then
if [[ $PWD == /* && $PWD -ef . ]]; then
dir=$PWD/$dir
else
dir=${dir:a}
fi
fi
else
[[ $GIT_DIR == /* ]] && dir=:$GIT_DIR || dir=:${(%):-%/}/$GIT_DIR
if [[ $GIT_DIR == /* ]]; then
dir=:$GIT_DIR
elif [[ $PWD == /* && $PWD -ef . ]]; then
dir=:$PWD/$GIT_DIR
else
dir=:${GIT_DIR:a}
fi
fi
if [[ $dir != (|:)/* ]]; then