diff options
author | John Wiegley <johnw@newartisans.com> | 2009-11-14 02:49:38 -0500 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-11-14 02:49:38 -0500 |
commit | 7a447912216e467a402e48be49f143f1b4be8261 (patch) | |
tree | 4b0c70b1a9cc71a77a304672ac45dbdeef9c8c52 | |
parent | 2d58224001e502111812aaecbc56fdf618147bf8 (diff) | |
download | fork-ledger-7a447912216e467a402e48be49f143f1b4be8261.tar.gz fork-ledger-7a447912216e467a402e48be49f143f1b4be8261.tar.bz2 fork-ledger-7a447912216e467a402e48be49f143f1b4be8261.zip |
Optimization in the formatting of string values
-rw-r--r-- | src/format.cc | 7 | ||||
-rw-r--r-- | src/value.cc | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/format.cc b/src/format.cc index e910ce3b..f26a86a1 100644 --- a/src/format.cc +++ b/src/format.cc @@ -355,8 +355,11 @@ string format_t::real_calc(scope_t& scope) } DEBUG("format.expr", "value = (" << value << ")"); - value.print(out, static_cast<int>(elem->min_width), -1, - ! elem->has_flags(ELEMENT_ALIGN_LEFT)); + if (elem->min_width > 0) + value.print(out, static_cast<int>(elem->min_width), -1, + ! elem->has_flags(ELEMENT_ALIGN_LEFT)); + else + out << value.to_string(); } catch (const calc_error&) { add_error_context(_("While calculating format expression:")); diff --git a/src/value.cc b/src/value.cc index ce852c2d..3f70ab3d 100644 --- a/src/value.cc +++ b/src/value.cc @@ -1618,7 +1618,10 @@ void value_t::print(std::ostream& out, break; case STRING: - justify(out, as_string(), first_width, right_justify); + if (first_width > 0) + justify(out, as_string(), first_width, right_justify); + else + out << as_string(); break; case MASK: |