From 6aae321e440b66b7390d792df8a8312f112b7610 Mon Sep 17 00:00:00 2001 From: Todd Derr Date: Tue, 14 May 2019 17:39:50 -0400 Subject: [PATCH] Fix extra tilde when using truncate_with_folder_marker under $HOME MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit truncate_with_folder_marker adds a tilde when it finds HOME, but POWERLEVEL9K_HOME_FOLDER_ABBREVIATION is also prepended, so if you're in a subdirectory of $HOME you get an extra tilde (although this does not occur if you're actually in $HOME) Without the change, the new test I added fails: ``` testHomeWithFolderMarkerWorks ASSERT:expected:<%K{004} %F{000}~/powerlevel9k-test %k%F{004}%f > but was:<%K{004} %F{000}~~/powerlevel9k-test %k%F{004}%f > ``` --- powerlevel9k.zsh-theme | 2 +- test/segments/dir.spec | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 4939cb354..2c5c107b1 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -874,7 +874,7 @@ prompt_dir() { trunc_path="/" elif [[ "$marked_folder" == "$HOME" ]]; then # If we reached home folder, stop upsearch. - trunc_path="~" + trunc_path="" elif [[ "${marked_folder%/*}" == $last_marked_folder ]]; then trunc_path="${trunc_path%/}/${marked_folder##*/}" else diff --git a/test/segments/dir.spec b/test/segments/dir.spec index d75ca42f8..51c3b96c3 100755 --- a/test/segments/dir.spec +++ b/test/segments/dir.spec @@ -213,6 +213,28 @@ function testTruncateWithFolderMarkerWorks() { rm -fr $BASEFOLDER } +function testHomeWithFolderMarkerWorks() { + local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS + POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir) + local POWERLEVEL9K_SHORTEN_STRATEGY="truncate_with_folder_marker" + local POWERLEVEL9K_HOME_FOLDER_ABBREVIATION='~' + local dir=$PWD + + mkdir -p ~/powerlevel9k-test + + # Load Powerlevel9k + source ${P9K_HOME}/powerlevel9k.zsh-theme + + cd ~ + assertEquals "%K{004} %F{000}~ %k%F{004}%f " "$(build_left_prompt)" + + cd ~/powerlevel9k-test + assertEquals "%K{004} %F{000}~/powerlevel9k-test %k%F{004}%f " "$(build_left_prompt)" + + cd $dir + rm -fr ~/powerlevel9k-test +} + function testTruncateWithFolderMarkerWithChangedFolderMarker() { local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)