Files
libreoffice/include/vcl/strhelper.hxx
Stephan Bergmann 909a76c7da New loplugin:inlinevisible to flag inline functions marked DLLEXPORT
...which does not make sense.  On Linux and Mac OS X, they potentially end up
exported from multiple libs (weakly, though), while on Windows the potentially
even end up not emitted at all, which could cause link errors.

Change-Id: I092c9ba39e686c17b6e91581cdd4753f1c4d582f
2014-05-30 14:12:31 +02:00

73 lines
2.8 KiB
C++

/* -*- 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 <cstring>
#include <rtl/math.hxx>
#include <rtl/ustring.hxx>
#include <vcl/dllapi.h>
namespace psp
{
VCL_DLLPUBLIC OUString GetCommandLineToken( int, const OUString& );
VCL_DLLPUBLIC OString GetCommandLineToken(int, const OString&);
// gets one token of a unix command line style string
// doublequote, singlequote and singleleftquote protect their respective
// contents
VCL_DLLPUBLIC int GetCommandLineTokenCount(const OUString&);
// returns number of tokens (zero if empty or whitespace only)
VCL_DLLPUBLIC OUString WhitespaceToSpace( const OUString&, bool bProtect = true );
VCL_DLLPUBLIC OString WhitespaceToSpace(const OString&, bool bProtect = true);
// 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, sal_Unicode('.'), sal_Unicode(0));
}
inline double StringToDouble(const OString& rStr)
{
return rtl::math::stringToDouble(rStr, '.', static_cast<sal_Char>(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: */