r-lib/cli

`format_inline()` doesn't preserve newlines in interpolated strings

davidchall opened this issue ยท 0 comments

cli 3.6.0 changed the behavior of format_inline() so it now preserves newlines. Firstly, thanks for this change! ๐Ÿ‘

Unfortunately, this new behavior doesn't apply to interpolated strings (find examples from cli unit tests below). Is this a bug or should we document the behavior depends on whether interpolation is used? Note: form feed characters are preserved in both cases.

library(cli)

x <- "foo\nbar"
format_inline(x)
#> [1] "foo\nbar"
format_inline("{x}")
#> [1] "foo bar"

x <- "\nfoo\n\nbar\n"
format_inline(x)
#> [1] "\nfoo\n\nbar\n"
format_inline("{x}")
#> [1] " foo  bar "

x <- "foo\fbar"
format_inline(x)
#> [1] "foo\fbar"
format_inline("{x}")
#> [1] "foo\fbar"

x <- "\ffoo\f\fbar\f"
format_inline(x)
#> [1] "\ffoo\f\fbar\f"
format_inline("{x}")
#> [1] "\ffoo\f\fbar\f"

Created on 2023-08-26 with reprex v2.0.2