From 2eb45b58638f3a7152ec59357b023c371eccc847 Mon Sep 17 00:00:00 2001 From: lnu Date: Tue, 25 May 2021 14:45:21 +0200 Subject: [PATCH] fix: escape \ from segment value when in bash fix #738 --- src/block.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/block.go b/src/block.go index 38f9300d..e36c1657 100644 --- a/src/block.go +++ b/src/block.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "strings" "sync" "time" ) @@ -90,7 +91,13 @@ func (b *Block) renderSegments() string { } b.activeSegment = segment b.endPowerline() - b.renderSegmentText(segment.stringValue) + segmentValue := segment.stringValue + // escape backslashes to avoid replacements + // https://tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html + if b.env.getShellName() == bash { + segmentValue = strings.ReplaceAll(segment.stringValue, "\\", "\\\\") + } + b.renderSegmentText(segmentValue) } if b.previousActiveSegment != nil && b.previousActiveSegment.Style == Powerline { b.writePowerLineSeparator(Transparent, b.previousActiveSegment.background(), true)