From cae49a2998965645a0eaa88ad702e2ebc9bd5434 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Thu, 19 Feb 2009 12:49:25 -0400 Subject: [PATCH] Efficiency fix for the formatting code --- src/format.cc | 21 ++++++++++++--------- 1 file 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; } }