aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpowerlevel9k.zsh-theme2
-rwxr-xr-xtest/segments/dir.spec25
2 files changed, 26 insertions, 1 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index b37f12c7..b08155ed 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -794,7 +794,7 @@ prompt_dir() {
fi
if [[ "${POWERLEVEL9K_HOME_FOLDER_ABBREVIATION}" != "~" ]]; then
- current_path="$( echo "${current_path}" | sed "s/^~/${POWERLEVEL9K_HOME_FOLDER_ABBREVIATION}/")"
+ current_path=${current_path/#\~/${POWERLEVEL9K_HOME_FOLDER_ABBREVIATION}}
fi
typeset -AH dir_states
diff --git a/test/segments/dir.spec b/test/segments/dir.spec
index b2991175..f4842f38 100755
--- a/test/segments/dir.spec
+++ b/test/segments/dir.spec
@@ -272,6 +272,31 @@ function testChangingDirPathSeparator() {
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
}
+function testHomeFolderAbbreviation() {
+ local POWERLEVEL9K_HOME_FOLDER_ABBREVIATION
+ local dir=$PWD
+
+ cd ~/
+ # default
+ POWERLEVEL9K_HOME_FOLDER_ABBREVIATION='~'
+ assertEquals "%K{blue} %F{black}~ %k%F{blue}%f " "$(build_left_prompt)"
+
+ # substituted
+ POWERLEVEL9K_HOME_FOLDER_ABBREVIATION='qQq'
+ assertEquals "%K{blue} %F{black}qQq %k%F{blue}%f " "$(build_left_prompt)"
+
+ cd /tmp
+ # default
+ POWERLEVEL9K_HOME_FOLDER_ABBREVIATION='~'
+ assertEquals "%K{blue} %F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
+
+ # substituted
+ POWERLEVEL9K_HOME_FOLDER_ABBREVIATION='qQq'
+ assertEquals "%K{blue} %F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
+
+ cd "$dir"
+}
+
function testOmittingFirstCharacterWorks() {
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
POWERLEVEL9K_FOLDER_ICON='folder-icon'