Handle reporting widths that are too small

This commit is contained in:
John Wiegley 2009-02-21 02:17:03 -04:00
parent d0ac3a2e4e
commit 13812346b6
2 changed files with 3 additions and 2 deletions

View file

@ -286,7 +286,7 @@ string format_t::truncate(const unistring& ustr, std::size_t width,
assert(width < 4095);
const std::size_t len = ustr.length();
if (len <= width)
if (width == 0 || len <= width)
return ustr.extract();
std::ostringstream buf;

View file

@ -163,7 +163,8 @@ value_t report_t::fn_truncate(call_scope_t& args)
var_t<long> width(args, 1);
var_t<long> account_abbrev(args, 2);
return string_value(format_t::truncate(args[0].as_string(), *width,
return string_value(format_t::truncate(args[0].as_string(),
width && *width > 0 ? *width : 0,
account_abbrev ? *account_abbrev : -1));
}