X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMacCompatibility.h;h=e9b2905f714219e2b6d98ac65311450913a442a6;hb=1aef858f5ecb3dc8fd816e0155635371ed3632f2;hp=95781f23160ea6c8c80008b4119b02538cef7682;hpb=40a3dd7b76b6b10ae05dbd074f1f80ea7b4aa96d;p=lugaru.git diff --git a/Source/MacCompatibility.h b/Source/MacCompatibility.h index 95781f2..e9b2905 100644 --- a/Source/MacCompatibility.h +++ b/Source/MacCompatibility.h @@ -1,3 +1,24 @@ +/* +Copyright (C) 2003, 2010 - Wolfire Games + +This file is part of Lugaru. + +Lugaru is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + #ifndef _MACCOMPATIBLITY_H_ #define _MACCOMPATIBLITY_H_ @@ -5,10 +26,15 @@ #include #include +#include -// stuff to make Mac code compatable with Windows +// stuff to make Mac code compatable with Windows/Linux/etc +#if defined(WIN32) && !defined(strcasecmp) +#define strcasecmp(a,b) stricmp(a,b) +#endif +#ifdef _MSC_VER // disable warnings about double to float conversions #pragma warning(disable:4305) #pragma warning(disable:4244) @@ -18,6 +44,13 @@ // disable warning about unreferenced local variables #pragma warning(disable:4101) +#endif + +#ifndef __forceinline +# ifdef __GNUC__ +# define __forceinline inline __attribute__((always_inline)) +# endif +#endif typedef bool Boolean; @@ -63,41 +96,23 @@ enum Duration AbsoluteDeltaToDuration( AbsoluteTime& a, AbsoluteTime& b); - +#ifdef _MSC_VER inline bool isnormal( double x) { int ret = _fpclass( x); return (ret == _FPCLASS_NN || ret == _FPCLASS_PN); } - -typedef unsigned int uintptr_t; +#else +#include +#endif // fix file names to use '/' instead of ':' -char* ConvertFileName( const char* orgfilename); +char* ConvertFileName( const char* orgfilename, const char *mode = "rb" ); -#define fopen( a, b) fopen( ConvertFileName( a), b); -/* -inline float abs( float f) -{ -if (f < 0) -return -f; -return f; -} +#define fopen( a, b) fopen(ConvertFileName(a, b), b) -inline double abs( double f) -{ -if (f < 0) -return -f; -return f; -} -*/ -inline long long abs( long long f) -{ - if (f < 0) - return -f; - return f; -} #endif #endif +