hrev45165 adds 1 changeset to branch 'master' old head: 2b934bb6aee4cdd891e5b727e0c0e66897816229 new head: 3c7eaf396cc792b8bea0955301ee11afb5a8bafd overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=3c7eaf3+%5E2b934bb ---------------------------------------------------------------------------- 3c7eaf3: Truncate background image name in multibyte-aware way [ Siarzhuk Zharski <zharik@xxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45165 Commit: 3c7eaf396cc792b8bea0955301ee11afb5a8bafd URL: http://cgit.haiku-os.org/haiku/commit/?id=3c7eaf3 Author: Siarzhuk Zharski <zharik@xxxxxx> Date: Tue Jan 15 11:56:17 2013 UTC ---------------------------------------------------------------------------- 1 file changed, 6 insertions(+), 7 deletions(-) src/preferences/backgrounds/BackgroundImage.cpp | 13 ++++++------- ---------------------------------------------------------------------------- diff --git a/src/preferences/backgrounds/BackgroundImage.cpp b/src/preferences/backgrounds/BackgroundImage.cpp index a4b41ec..9c55d8c 100644 --- a/src/preferences/backgrounds/BackgroundImage.cpp +++ b/src/preferences/backgrounds/BackgroundImage.cpp @@ -561,16 +561,15 @@ Image::Image(BPath path) fBitmap(NULL), fPath(path) { - const int32 kMaxWidth = 40; + const int32 kMaxNameChars = 40; fName = path.Leaf(); - int extra = fName.Length() - kMaxWidth; + int extra = fName.CountChars() - kMaxNameChars; if (extra > 0) { + BString extension; int offset = fName.FindLast('.'); - if (offset > 0) { - offset++; - fName.Truncate(offset - extra) << B_UTF8_ELLIPSIS; - fName.Append(path.Leaf() + offset); - } + if (offset > 0) + fName.CopyInto(extension, ++offset, -1); + fName.TruncateChars(kMaxNameChars) << B_UTF8_ELLIPSIS << extension; } }