// Copyright (c) 1998-1999 Matra Datavision // Copyright (c) 1999-2014 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. //!@file //! Functions working with plain C strings #ifndef _Standard_CString_HeaderFile #define _Standard_CString_HeaderFile #include "Standard_Macro.hxx" #include #include #include #if defined(_MSC_VER) #if !defined(strcasecmp) #define strcasecmp _stricmp #endif #if !defined(strncasecmp) #define strncasecmp _strnicmp #endif #endif // C++ only definitions #ifdef __cplusplus #include "Standard_TypeDef.hxx" //! Returns Standard_True if two strings are equal inline bool IsEqual(const char* const theOne, const char* const theTwo) { return strcmp(theOne, theTwo) == 0; } #endif /* __cplusplus */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ //! Equivalent of standard C function atof() that always uses C locale Standard_EXPORT double Atof(const char* theStr); //! Optimized equivalent of standard C function strtod() that always uses C locale Standard_EXPORT double Strtod(const char* theStr, char** theNextPtr); //! Equivalent of standard C function printf() that always uses C locale Standard_EXPORT int Printf(const char* const theFormat, ...) #ifdef __GNUC__ __attribute__((format(printf, 1, 2))) #endif ; //! Equivalent of standard C function fprintf() that always uses C locale Standard_EXPORT int Fprintf(FILE* theFile, const char* theFormat, ...) #ifdef __GNUC__ __attribute__((format(printf, 2, 3))) #endif ; //! Equivalent of standard C function sprintf() that always uses C locale Standard_EXPORT int Sprintf(char* theBuffer, const char* theFormat, ...) #ifdef __GNUC__ __attribute__((format(printf, 2, 3))) #endif ; //! Equivalent of standard C function vsprintf() that always uses C locale. //! Note that this function does not check buffer bounds and should be used with precaution //! measures (only with format fitting into the buffer of known size). //! @param[in][out] theBuffer string buffer to fill //! @param[in] theFormat format to apply //! @param[in] theArgList argument list for specified format //! @return the total number of characters written, or a negative number on error Standard_EXPORT int Vsprintf(char* theBuffer, const char* theFormat, va_list theArgList) #ifdef __GNUC__ __attribute__((format(printf, 2, 0))) #endif ; #ifdef __cplusplus } #endif /* __cplusplus */ #endif