/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * 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/. * * This file incorporates work covered by the following license notice: * * 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 . */ #ifndef INCLUDED_VCL_STRHELPER_HXX #define INCLUDED_VCL_STRHELPER_HXX #include #include #include #include namespace psp { OUString GetCommandLineToken( int, const OUString& ); OString GetCommandLineToken(int, const OString&); // gets one token of a unix command line style string // doublequote, singlequote and singleleftquote protect their respective // contents int GetCommandLineTokenCount(const OUString&); // returns number of tokens (zero if empty or whitespace only) OUString WhitespaceToSpace( const OUString&, bool bProtect = true ); OString WhitespaceToSpace(const OString&); // returns a string with multiple adjacent occurrences of whitespace // converted to a single space. if bProtect is sal_True (nonzero), then // doublequote, singlequote and singleleftquote protect their respective // contents // parses the first double in the string; decimal is '.' only inline double StringToDouble( const OUString& rStr ) { return rtl::math::stringToDouble(rStr, u'.', u'\0'); } inline double StringToDouble(const OString& rStr) { return rtl::math::stringToDouble(rStr, '.', static_cast(0)); } // fills a character buffer with the string representation of a double // the buffer has to be long enough (e.g. 128 bytes) // returns the string len inline int getValueOfDouble( char* pBuffer, double f, int nPrecision = 0) { OString aStr( rtl::math::doubleToString( f, rtl_math_StringFormat_G, nPrecision, '.', true ) ); int nLen = aStr.getLength(); std::strncpy( pBuffer, aStr.getStr(), nLen+1 ); // copy string including terminating zero return nLen; } } // namespace #endif // INCLUDED_VCL_STRHELPER_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */