[Libreoffice-commits] .: sc/source

Caolán McNamara caolan at kemper.freedesktop.org
Mon Nov 14 04:19:13 PST 2011


 sc/source/ui/docshell/docsh.cxx |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

New commits:
commit fb754a0df859e30255c25af8fa19bfaa75f257e7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Nov 14 12:19:09 2011 +0000

    original would unconditionally truncate to nLen

diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 4a0981d..65fccaa 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -1612,10 +1612,17 @@ void lcl_ScDocShell_GetFixedWidthString( rtl::OUString& rStr, const ScDocument&
     rtl::OUString aString = rStr;
     sal_Int32 nLen = lcl_ScDocShell_GetColWidthInChars(
             rDoc.GetColWidth( nCol, nTab ) );
+    //If the text won't fit in the column
     if ( nLen < aString.getLength() )
     {
-        if ( bValue )
-            aString = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "###" ));
+        rtl::OUStringBuffer aReplacement;
+        if (bValue)
+            aReplacement.appendAscii(RTL_CONSTASCII_STRINGPARAM("###"));
+        else
+            aReplacement.append(aString);
+        //truncate to the number of characters that should fit, even in the
+        //bValue case nLen might be < len ###
+        aString = comphelper::string::truncateToLength(aReplacement, nLen).makeStringAndClear();
     }
     if ( nLen > aString.getLength() )
     {


More information about the Libreoffice-commits mailing list