mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Change fmt.*print behaviour to match fmt.*println behaviour
This commit is contained in:
+16
-8
@@ -185,17 +185,25 @@ fprint_type :: proc(fd: os.Handle, info: ^runtime.Type_Info) {
|
|||||||
|
|
||||||
sbprint :: proc(buf: ^strings.Builder, args: ..any) -> string {
|
sbprint :: proc(buf: ^strings.Builder, args: ..any) -> string {
|
||||||
fi: Info;
|
fi: Info;
|
||||||
|
|
||||||
fi.buf = buf;
|
fi.buf = buf;
|
||||||
|
|
||||||
prev_string := false;
|
// NOTE(bill): Old approach
|
||||||
for arg, i in args {
|
// prev_string := false;
|
||||||
is_string := arg != nil && reflect.is_string(type_info_of(arg.id));
|
// for arg, i in args {
|
||||||
if i > 0 && !is_string && !prev_string {
|
// is_string := arg != nil && reflect.is_string(type_info_of(arg.id));
|
||||||
strings.write_byte(buf, ' ');
|
// if i > 0 && !is_string && !prev_string {
|
||||||
}
|
// strings.write_byte(buf, ' ');
|
||||||
|
// }
|
||||||
|
// fmt_value(&fi, args[i], 'v');
|
||||||
|
// prev_string = is_string;
|
||||||
|
// }
|
||||||
|
// NOTE(bill, 2020-06-19): I have found that the previous approach was not what people were expecting
|
||||||
|
// and were expecting `*print` to be the same `*println` except for the added newline
|
||||||
|
// so I am going to keep the same behaviour as `*println` for `*print`
|
||||||
|
for _, i in args {
|
||||||
|
if i > 0 do strings.write_byte(buf, ' ');
|
||||||
|
|
||||||
fmt_value(&fi, args[i], 'v');
|
fmt_value(&fi, args[i], 'v');
|
||||||
prev_string = is_string;
|
|
||||||
}
|
}
|
||||||
return strings.to_string(buf^);
|
return strings.to_string(buf^);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user