diff options
-rw-r--r-- | src/format.cc | 2 | ||||
-rw-r--r-- | src/report.cc | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/format.cc b/src/format.cc index b841af23..5b813ee6 100644 --- a/src/format.cc +++ b/src/format.cc @@ -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; diff --git a/src/report.cc b/src/report.cc index 074af2f3..db70817c 100644 --- a/src/report.cc +++ b/src/report.cc @@ -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)); } |