diff options
Diffstat (limited to 'vcl/source/control/longcurr.cxx')
-rw-r--r-- | vcl/source/control/longcurr.cxx | 74 |
1 files changed, 32 insertions, 42 deletions
diff --git a/vcl/source/control/longcurr.cxx b/vcl/source/control/longcurr.cxx index fa9fe0f71c9a..e9a8330217a9 100644 --- a/vcl/source/control/longcurr.cxx +++ b/vcl/source/control/longcurr.cxx @@ -1,30 +1,21 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* +/* + * This file is part of the LibreOffice project. * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * This file incorporates work covered by the following license notice: * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ #include <comphelper/string.hxx> #include <sot/object.hxx> @@ -142,10 +133,9 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, { XubString aStr = rStr; XubString aStr1; - XubString aStr2; + rtl::OUStringBuffer aStr2; sal_uInt16 nDecPos; sal_Bool bNegative = sal_False; - xub_StrLen i; // Reaktion auf leeren String if ( !rStr.Len() ) @@ -160,7 +150,7 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, if ( nDecPos != STRING_NOTFOUND ) { aStr1 = aStr.Copy( 0, nDecPos ); - aStr2 = aStr.Copy( nDecPos+1 ); + aStr2.append(aStr.Copy(nDecPos+1)); } else aStr1 = aStr; @@ -172,7 +162,7 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, bNegative = sal_True; if ( !bNegative ) { - for ( i=0; i < aStr.Len(); i++ ) + for (xub_StrLen i=0; i < aStr.Len(); i++ ) { if ( (aStr.GetChar( i ) >= '0') && (aStr.GetChar( i ) <= '9') ) break; @@ -189,7 +179,7 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, if ( (nFormat == 3) || (nFormat == 6) || (nFormat == 7) || (nFormat == 10) ) { - for ( i = (sal_uInt16)(aStr.Len()-1); i > 0; i++ ) + for (xub_StrLen i = (sal_uInt16)(aStr.Len()-1); i > 0; i++ ) { if ( (aStr.GetChar( i ) >= '0') && (aStr.GetChar( i ) <= '9') ) break; @@ -209,22 +199,22 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, } // Alle unerwuenschten Zeichen rauswerfen - for ( i=0; i < aStr1.Len(); ) + for (xub_StrLen i=0; i < aStr1.Len(); ) { if ( (aStr1.GetChar( i ) >= '0') && (aStr1.GetChar( i ) <= '9') ) i++; else aStr1.Erase( i, 1 ); } - for ( i=0; i < aStr2.Len(); ) + for (sal_Int32 i=0; i < aStr2.getLength();) { - if ( (aStr2.GetChar( i ) >= '0') && (aStr2.GetChar( i ) <= '9') ) - i++; + if ((aStr2[i] >= '0') && (aStr2[i] <= '9')) + ++i; else - aStr2.Erase( i, 1 ); + aStr2.remove(i, 1); } - if ( !aStr1.Len() && !aStr2.Len() ) + if (!aStr1.Len() && !aStr2.getLength()) return sal_False; if ( !aStr1.Len() ) @@ -233,18 +223,18 @@ static sal_Bool ImplNumericGetValue( const XubString& rStr, BigInt& rValue, aStr1.Insert( '-', 0 ); // Nachkommateil zurechtstutzen und dabei runden - sal_Bool bRound = sal_False; - if ( aStr2.Len() > nDecDigits ) + bool bRound = false; + if (aStr2.getLength() > nDecDigits) { - if ( aStr2.GetChar( nDecDigits ) >= '5' ) - bRound = sal_True; - aStr2.Erase( nDecDigits ); + if (aStr2[nDecDigits] >= '5') + bRound = true; + string::truncateToLength(aStr2, nDecDigits); } - if ( aStr2.Len() < nDecDigits ) - aStr2.Expand( nDecDigits, '0' ); + if (aStr2.getLength() < nDecDigits) + string::padToLength(aStr2, nDecDigits, '0'); aStr = aStr1; - aStr += aStr2; + aStr += aStr2.makeStringAndClear(); // Bereichsueberpruefung BigInt nValue( aStr ); |