diff options
| author | Brian Anderson <[email protected]> | 2011-04-17 19:50:58 -0400 |
|---|---|---|
| committer | Brian Anderson <[email protected]> | 2011-04-17 19:50:58 -0400 |
| commit | 9976bb93d6c2ab46979c2bc13480266069fd8b3e (patch) | |
| tree | 036dee6d7f8d2b9f96b6611d407caf687f755cd3 /src/lib/ExtFmt.rs | |
| parent | Support + flag in #fmt (diff) | |
| download | rust-9976bb93d6c2ab46979c2bc13480266069fd8b3e.tar.xz rust-9976bb93d6c2ab46979c2bc13480266069fd8b3e.zip | |
Support the space flag in #fmt
Diffstat (limited to 'src/lib/ExtFmt.rs')
| -rw-r--r-- | src/lib/ExtFmt.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/ExtFmt.rs b/src/lib/ExtFmt.rs index c2cce279..c6ddad30 100644 --- a/src/lib/ExtFmt.rs +++ b/src/lib/ExtFmt.rs @@ -52,7 +52,7 @@ mod CT { tag flag { flag_left_justify; flag_left_zero_pad; - flag_left_space_pad; + flag_space_for_sign; flag_sign_always; flag_alternate; } @@ -201,7 +201,7 @@ mod CT { } else if (f == ('0' as u8)) { ret more(flag_left_zero_pad); } else if (f == (' ' as u8)) { - ret more(flag_left_space_pad); + ret more(flag_space_for_sign); } else if (f == ('+' as u8)) { ret more(flag_sign_always); } else if (f == ('#' as u8)) { @@ -306,6 +306,7 @@ mod RT { tag flag { flag_left_justify; + flag_space_for_sign; flag_sign_always; // FIXME: This is a hack to avoid creating 0-length vec exprs, // which have some difficulty typechecking currently. See @@ -336,8 +337,12 @@ mod RT { auto radix = 10u; auto prec = get_int_precision(cv); auto s = int_to_str_prec(i, radix, prec); - if (0 <= i && have_flag(cv.flags, flag_sign_always)) { - s = "+" + s; + if (0 <= i) { + if (have_flag(cv.flags, flag_sign_always)) { + s = "+" + s; + } else if (have_flag(cv.flags, flag_space_for_sign)) { + s = " " + s; + } } ret pad(cv, s); } |