diff options
| author | Piotr Jawniak <sawyer47@gmail.com> | 2017-03-03 15:42:30 +0100 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2017-03-15 07:50:44 -0700 |
| commit | ff63866edb511a73eed657a8a4f5c81f1ee5a9bb (patch) | |
| tree | a9f4fdcbba4d05220796bcc46a2a1dda5f76a90f /src/libcore | |
| parent | 6f10e2f63de720468e2b4bfcb275e4b90b1f9870 (diff) | |
| download | rust-ff63866edb511a73eed657a8a4f5c81f1ee5a9bb.tar.gz rust-ff63866edb511a73eed657a8a4f5c81f1ee5a9bb.zip | |
Change how the `0` flag works in format!
Now it always implies right-alignment, so that padding zeroes are placed after the sign (if any) and before the digits. In other words, it always takes precedence over explicitly specified `[[fill]align]`. This also affects the '#' flag: zeroes are placed after the prefix (0b, 0o, 0x) and before the digits.
:05 :<05 :>05 :^05
before |-0001| |-1000| |-0001| |-0100|
after |-0001| |-0001| |-0001| |-0001|
:#05x :<#05x :>#05x :^#05x
before |0x001| |0x100| |000x1| |0x010|
after |0x001| |0x001| |0x001| |0x001|
Fixes #39997 [breaking-change]
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/fmt/mod.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index 1657342ff6a..fd77201317f 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -1045,6 +1045,7 @@ impl<'a> Formatter<'a> { // is zero Some(min) if self.sign_aware_zero_pad() => { self.fill = '0'; + self.align = rt::v1::Alignment::Right; write_prefix(self)?; self.with_padding(min - width, rt::v1::Alignment::Right, |f| { f.buf.write_str(buf) |
