diff options
-rw-r--r-- | lib/pure/terminal.nim | 8 | ||||
-rw-r--r-- | tests/stdlib/t9394.nim | 7 |
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim index 2e138b27e..974dc839d 100644 --- a/lib/pure/terminal.nim +++ b/lib/pure/terminal.nim @@ -18,7 +18,7 @@ import macros import strformat -from strutils import toLowerAscii +from strutils import toLowerAscii, `%` import colors, tables when defined(windows): @@ -635,7 +635,8 @@ proc ansiForegroundColorCode*(color: Color): string = template ansiForegroundColorCode*(color: static[Color]): string = const rgb = extractRGB(color) - (static(fmt"{fgPrefix}{rgb.r};{rgb.g};{rgb.b}m")) + # no usage of `fmt`, see issue #7632 + (static("$1$2;$3;$4m" % [$fgPrefix, $(rgb.r), $(rgb.g), $(rgb.b)])) proc ansiBackgroundColorCode*(color: Color): string = let rgb = extractRGB(color) @@ -643,7 +644,8 @@ proc ansiBackgroundColorCode*(color: Color): string = template ansiBackgroundColorCode*(color: static[Color]): string = const rgb = extractRGB(color) - (static(fmt"{bgPrefix}{rgb.r};{rgb.g};{rgb.b}m")) + # no usage of `fmt`, see issue #7632 + (static("$1$2;$3;$4m" % [$bgPrefix, $(rgb.r), $(rgb.g), $(rgb.b)])) proc setForegroundColor*(f: File, color: Color) = ## Sets the terminal's foreground true color. diff --git a/tests/stdlib/t9394.nim b/tests/stdlib/t9394.nim new file mode 100644 index 000000000..3c0123eb5 --- /dev/null +++ b/tests/stdlib/t9394.nim @@ -0,0 +1,7 @@ +import terminal, colors + +let codeFg = ansiForegroundColorCode(colAliceBlue) +let codeBg = ansiBackgroundColorCode(colAliceBlue) + +doAssert codeFg == "\27[38;2;240;248;255m" +doAssert codeBg == "\27[48;2;240;248;255m" |