mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
Handle {s} format for C strings. (#4219)
* Handle {s} format for C strings.
* Fix "cstr" test to actually use c strings.
This commit is contained in:
parent
7a1cde7206
commit
0000de4fee
@ -431,7 +431,7 @@ pub fn formatType(
|
||||
},
|
||||
else => return format(context, Errors, output, "{}@{x}", .{ @typeName(T.Child), @ptrToInt(value) }),
|
||||
},
|
||||
.Many => {
|
||||
.Many, .C => {
|
||||
if (ptr_info.child == u8) {
|
||||
if (fmt.len > 0 and fmt[0] == 's') {
|
||||
const len = mem.len(u8, value);
|
||||
@ -449,9 +449,6 @@ pub fn formatType(
|
||||
}
|
||||
return format(context, Errors, output, "{}@{x}", .{ @typeName(ptr_info.child), @ptrToInt(value.ptr) });
|
||||
},
|
||||
.C => {
|
||||
return format(context, Errors, output, "{}@{x}", .{ @typeName(T.Child), @ptrToInt(value) });
|
||||
},
|
||||
},
|
||||
.Array => |info| {
|
||||
const Slice = @Type(builtin.TypeInfo{
|
||||
@ -1285,8 +1282,16 @@ test "pointer" {
|
||||
}
|
||||
|
||||
test "cstr" {
|
||||
try testFmt("cstr: Test C\n", "cstr: {s}\n", .{"Test C"});
|
||||
try testFmt("cstr: Test C \n", "cstr: {s:10}\n", .{"Test C"});
|
||||
try testFmt(
|
||||
"cstr: Test C\n",
|
||||
"cstr: {s}\n",
|
||||
.{@ptrCast([*c]const u8, "Test C")},
|
||||
);
|
||||
try testFmt(
|
||||
"cstr: Test C \n",
|
||||
"cstr: {s:10}\n",
|
||||
.{@ptrCast([*c]const u8, "Test C")},
|
||||
);
|
||||
}
|
||||
|
||||
test "filesize" {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user