mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-18 20:40:28 +00:00
[fmt] fix zero-padding behaviour of numbers
- when formatting a negative number with left zero-padding we expect the padding to be placed between the minus (-) sign and the number - currently the padding is placed before the sign
This commit is contained in:
@@ -1142,6 +1142,11 @@ _pad :: proc(fi: ^Info, s: string) {
|
||||
if fi.minus { // right pad
|
||||
io.write_string(fi.writer, s, &fi.n)
|
||||
fmt_write_padding(fi, width)
|
||||
} else if !fi.space && s != "" && s[0] == '-' {
|
||||
// left pad accounting for zero pad of negative number
|
||||
io.write_byte(fi.writer, '-', &fi.n)
|
||||
fmt_write_padding(fi, width)
|
||||
io.write_string(fi.writer, s[1:], &fi.n)
|
||||
} else { // left pad
|
||||
fmt_write_padding(fi, width)
|
||||
io.write_string(fi.writer, s, &fi.n)
|
||||
|
||||
Reference in New Issue
Block a user