From 653b51184f42ab260db3dba3e8a1360551dfcb45 Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Tue, 24 Sep 2024 11:53:44 -0500 Subject: [PATCH] add another escape pattern --- src/hwylterm/bbansi.nim | 4 ++-- tests/tbbansi.nim | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/hwylterm/bbansi.nim b/src/hwylterm/bbansi.nim index 1d113ea..a84a672 100644 --- a/src/hwylterm/bbansi.nim +++ b/src/hwylterm/bbansi.nim @@ -86,7 +86,7 @@ proc bb*(s: string): BbString = while i < s.len: case s[i] of '\\': - if i < s.len and s[i + 1] == '[': + if i < s.len and (s[i + 1] == '[' or s[i+1] == '\\'): inc i next of '[': @@ -163,7 +163,7 @@ proc `&`*(x: BbString, y: BbString): Bbstring = bb(x.raw & y.raw) proc bbEscape*(s: string): string {.inline.} = - s.replace("[", "[[") + s.replace("[", "[[").replace("\\", "\\\\") proc bbEcho*(args: varargs[string, `$`]) {.sideEffect.} = for x in args: diff --git a/tests/tbbansi.nim b/tests/tbbansi.nim index 460ad8c..abe35d6 100644 --- a/tests/tbbansi.nim +++ b/tests/tbbansi.nim @@ -28,6 +28,7 @@ suite "basic": test "escaped": bbCheck "[[red] ignored pattern", "[red] ignored pattern" + bbCheck "\\[red] ignored pattern","[red] ignored pattern" test "newlines": bbCheck "[red]Red Text[/]\nNext Line", "\e[38;5;1mRed Text\e[0m\nNext Line"