diff options
-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: |