summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2016-10-27 17:59:55 +0300
committerGitHub <noreply@github.com>2016-10-27 17:59:55 +0300
commitfd9c998f02966229d0dfa576d0056bae21267a2a (patch)
tree25f631fa68ce5bf68627cb9ab697eb4a41395cbe
parent3c92cf9748cff350a14cc8f42eda439c5fe01baa (diff)
parent8d7a4e462ae93169be59c07a06c269fc254aa96b (diff)
Merge pull request #333 from eviltak/dir-truncate-right-with-delim-len
Consider delimiter length while right truncating directories
-rw-r--r--functions/utilities.zsh4
-rwxr-xr-xtest/segments/dir.spec2
2 files changed, 4 insertions, 2 deletions
diff --git a/functions/utilities.zsh b/functions/utilities.zsh
index c9bd2e46..f27c7f99 100644
--- a/functions/utilities.zsh
+++ b/functions/utilities.zsh
@@ -204,5 +204,7 @@ function segmentShouldBeJoined() {
# Given a directory path, truncate it according to the settings for
# `truncate_from_right`
function truncatePathFromRight() {
- echo $1 | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\//g"
+ local delim_len=${#POWERLEVEL9K_SHORTEN_DELIMITER}
+ echo $1 | sed $SED_EXTENDED_REGEX_PARAMETER \
+ "s@(([^/]{$((POWERLEVEL9K_SHORTEN_DIR_LENGTH))})([^/]{$delim_len}))[^/]+/@\2$POWERLEVEL9K_SHORTEN_DELIMITER/@g"
}
diff --git a/test/segments/dir.spec b/test/segments/dir.spec
index 035addea..840a298b 100755
--- a/test/segments/dir.spec
+++ b/test/segments/dir.spec
@@ -60,7 +60,7 @@ function testTruncationFromRightWorks() {
mkdir -p $FOLDER
cd $FOLDER
- assertEquals "%K{blue} %F{black}/tm…/po…/1/12/12…/12…/12…/12…/12…/12…/123456789 %k%F{blue}%f " "$(build_left_prompt)"
+ assertEquals "%K{blue} %F{black}/tmp/po…/1/12/123/12…/12…/12…/12…/12…/123456789 %k%F{blue}%f " "$(build_left_prompt)"
cd -
rm -fr /tmp/powerlevel9k-test