From 36ec2355b2ed5a6fac3087c00981313c6d2ff947 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 13 Apr 2025 05:46:48 -0300 Subject: [PATCH] cgen: fix zero left padding (fix #24199) (#24201) --- vlib/builtin/string_interpolation.v | 2 +- vlib/v/tests/left_padding_test.v | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 vlib/v/tests/left_padding_test.v diff --git a/vlib/builtin/string_interpolation.v b/vlib/builtin/string_interpolation.v index ecae53e44..cdc28f756 100644 --- a/vlib/builtin/string_interpolation.v +++ b/vlib/builtin/string_interpolation.v @@ -200,7 +200,7 @@ fn (data &StrIntpData) process_str_intp_data(mut sb strings.Builder) { } // align - if fmt_pad_ch == 0 { + if fmt_pad_ch == 0 || pad_ch == `0` { match align { 0 { bf.align = .left } 1 { bf.align = .right } diff --git a/vlib/v/tests/left_padding_test.v b/vlib/v/tests/left_padding_test.v new file mode 100644 index 000000000..b38cdaae0 --- /dev/null +++ b/vlib/v/tests/left_padding_test.v @@ -0,0 +1,10 @@ +module main + +fn test_main() { + // vfmt off + assert '[${8:-010}]' == '[8000000000]' + assert '[${8:010}]' == '[0000000008]' + assert '[${8:-10}]' == '[8 ]' + assert '[${8:10}]' == '[ 8]' + // vfmt on +} -- 2.39.5