diff options
-rw-r--r-- | src/format.cc | 3 | ||||
-rw-r--r-- | test/regress/F559EC12.test | 35 |
2 files changed, 37 insertions, 1 deletions
diff --git a/src/format.cc b/src/format.cc index 6620e5a4..ecac1133 100644 --- a/src/format.cc +++ b/src/format.cc @@ -345,7 +345,8 @@ void format_t::format(std::ostream& out_str, scope_t& scope) } DEBUG("format.expr", "value = (" << value << ")"); - value.print(out, elem->min_width); + value.print(out, elem->min_width, -1, + ! elem->has_flags(ELEMENT_ALIGN_LEFT)); } catch (const calc_error&) { add_error_context(_("While calculating format expression:")); diff --git a/test/regress/F559EC12.test b/test/regress/F559EC12.test new file mode 100644 index 00000000..7900b60d --- /dev/null +++ b/test/regress/F559EC12.test @@ -0,0 +1,35 @@ +format "%-12(scrub(amount))" +<<< +>>>1 +--- Context is first posting of the following transaction --- +2004/05/27 Book Store + Expenses:Books 20 BOOK @ $10 + Liabilities:MasterCard $-200.00 + +--- Input format string --- +%-12(scrub(amount)) + +--- Format elements --- +Element: EXPR flags: 0x1 min: 12 max: 0 expr: scrub(amount) + +--- Formatted string --- +"20 BOOK " +>>>2 +=== 0 +format "%12(scrub(amount))" +>>>1 +--- Context is first posting of the following transaction --- +2004/05/27 Book Store + Expenses:Books 20 BOOK @ $10 + Liabilities:MasterCard $-200.00 + +--- Input format string --- +%12(scrub(amount)) + +--- Format elements --- +Element: EXPR flags: 0x0 min: 12 max: 0 expr: scrub(amount) + +--- Formatted string --- +" 20 BOOK" +>>>2 +=== 0 |