diff options
Diffstat (limited to 'src/format.cc')
-rw-r--r-- | src/format.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/format.cc b/src/format.cc index e382f7ac..d2d7ebfd 100644 --- a/src/format.cc +++ b/src/format.cc @@ -262,18 +262,21 @@ void format_t::format(std::ostream& out_str, scope_t& scope) break; } - unistring temp(out.str()); + if (elem->max_width > 0 || elem->min_width > 0) { + unistring temp(out.str()); - string result; - if (elem->max_width > 0 && elem->max_width < temp.length()) { - result = truncate(temp, elem->max_width); + string result; + if (elem->max_width > 0 && elem->max_width < temp.length()) { + result = truncate(temp, elem->max_width); + } else { + result = temp.extract(); + for (int i = 0; i < (int)elem->min_width - (int)temp.length(); i++) + result += " "; + } + out_str << result; } else { - result = temp.extract(); - for (int i = 0; i < (int)elem->min_width - (int)temp.length(); i++) - result += " "; + out_str << out.str(); } - - out_str << result; } } |