diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index 42dce6ef57..bc9fd3c3ee 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -1031,6 +1031,8 @@ pub fn (mut f Fmt) expr(node ast.Expr) { ast.StringLiteral { if node.is_raw { f.write('r') + } else if node.language == table.Language.c { + f.write('c') } if node.val.contains("'") && !node.val.contains('"') { f.write('"$node.val"') diff --git a/vlib/v/fmt/tests/string_raw_and_cstr_keep.vv b/vlib/v/fmt/tests/string_raw_and_cstr_keep.vv new file mode 100644 index 0000000000..89e3010e82 --- /dev/null +++ b/vlib/v/fmt/tests/string_raw_and_cstr_keep.vv @@ -0,0 +1,6 @@ +fn main() { + raw := r'\x00' + cstr := c'foo' + println(raw) + println(cstr) +}