]> git.tdb.fi Git - libs/core.git/commitdiff
MSVC compatibility fixes
authorMikko Rasa <tdb@tdb.fi>
Thu, 13 Nov 2008 10:40:34 +0000 (10:40 +0000)
committerMikko Rasa <tdb@tdb.fi>
Thu, 13 Nov 2008 10:40:34 +0000 (10:40 +0000)
source/core/application.cpp
source/core/except.cpp
source/core/semaphore.cpp
source/debug/demangle.cpp
source/time/datetime.cpp
source/time/datetime.h
source/time/timedelta.cpp
source/time/timedelta.h
source/time/timestamp.h
source/time/types.h
source/time/utils.cpp

index 82134df90af16cba7fcab8457819c9cad5a55902..daeb1300d16602fcd1ff3c9f3ca82952a2b2a50a 100644 (file)
@@ -66,7 +66,7 @@ int Application::run(int argc, char **argv, void *data)
 
 #ifdef WIN32
                string msg=Debug::demangle(typeid(e).name())+":\n"+e.what();
-               MessageBox(0, msg.c_str(), "Uncaught exception", MB_OK|MB_ICONERROR);
+               MessageBoxA(0, msg.c_str(), "Uncaught exception", MB_OK|MB_ICONERROR);
 #else
                cerr<<"An uncaught exception occurred.\n";
                cerr<<"  type:   "<<Debug::demangle(typeid(e).name())<<'\n';
index 0ae2e59bd9ba339a78d7560ed13326ac6af83e45..90deb4071b68983d5f2c487fee8a2192f1bb42af 100644 (file)
@@ -43,7 +43,7 @@ string SystemError::build_what(const string &w, int e)
        buf<<w<<": ";
 #ifdef WIN32
        char msg[1024];
-       if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, e, 0, msg, sizeof(msg), 0))
+       if(FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, e, 0, msg, sizeof(msg), 0))
                buf<<msg;
        else
                buf<<e;
index b9e7080cb04ea2b6e4808de5de658f1400322708..bba39642c8c6aee8c52da11e931555a13645d485 100644 (file)
@@ -4,7 +4,9 @@ This file is part of libmspcore
 Copyright © 2006  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
+#ifndef WIN32
 #include <sys/time.h>
+#endif
 #include <errno.h>
 #include "semaphore.h"
 #include "../time/timestamp.h"
index 5c348514fd9bffa57ec0d7cbf6acb4539d198880..fc6ca7823f3d0eaf5d903c641dee848c1e77fef4 100644 (file)
@@ -6,7 +6,9 @@ Distributed under the LGPL
 */
 
 #include <cstdlib>
+#ifdef __GNUC__
 #include <cxxabi.h>
+#endif
 #include "demangle.h"
 
 using namespace std;
index 4c109758eb0e95d8b191d50152866856bbe48b46..2d7c19585cefeea0838b045643a9b9aaac588db7 100644 (file)
@@ -9,10 +9,10 @@ using namespace std;
 
 namespace {
 
-inline bool is_leap_year(int32_t y)
+inline bool is_leap_year(int y)
 { return y%4==0 && (y%100 || y%400==0); }
 
-inline uint8_t month_days(int32_t y, uint8_t m)
+inline unsigned char month_days(int y, unsigned char m)
 {
        switch(m)
        {
@@ -55,7 +55,7 @@ DateTime::DateTime(const TimeStamp &ts):
        add_raw(ts.raw());
 }
 
-DateTime::DateTime(int32_t y, uint8_t m, uint8_t d):
+DateTime::DateTime(int y, unsigned char m, unsigned char d):
        year(y),
        month(m),
        mday(d),
@@ -67,7 +67,7 @@ DateTime::DateTime(int32_t y, uint8_t m, uint8_t d):
        validate();
 }
 
-DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_t s):
+DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s):
        year(y),
        month(m),
        mday(d),
@@ -79,7 +79,7 @@ DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_
        validate();
 }
 
-DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_t s, uint32_t u):
+DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s, unsigned u):
        year(y),
        month(m),
        mday(d),
@@ -91,7 +91,7 @@ DateTime::DateTime(int32_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t n, uint8_
        validate();
 }
 
-void DateTime::add_days(int32_t days)
+void DateTime::add_days(int days)
 {
        unsigned new_year=year;
 
@@ -194,7 +194,7 @@ TimeStamp DateTime::get_timestamp() const
        if(year<-289701 || year>293641)
                throw Exception("DateTime is not representable as a TimeStamp");
 
-       int64_t raw=(((hour*60LL)+minute)*60+second)*1000000+usec;
+       RawTime raw=(((hour*60LL)+minute)*60+second)*1000000+usec;
        int days=(year-1970)*365;
        days+=(year-1)/4-(year-1)/100+(year-1)/400-477;
        for(unsigned i=1; i<month; ++i)
@@ -245,9 +245,9 @@ string DateTime::format(const string &fmt) const
        return ss.str();
 }
 
-void DateTime::add_raw(int64_t raw)
+void DateTime::add_raw(RawTime raw)
 {
-       int32_t days=raw/86400000000LL;
+       int days=static_cast<int>(raw/86400000000LL);
        raw%=86400000000LL;
        if(raw<0)
        {
index 807b16cf7f81beed52a4d1c0b3f6d3fdc5837faf..57ca89d8280535eea94efa301f750308688f9196 100644 (file)
@@ -2,8 +2,8 @@
 #ifndef MSP_TIME_DATETIME_H_
 #define MSP_TIME_DATETIME_H_
 
-#include <stdint.h>
 #include <string>
+#include "types.h"
 
 namespace Msp {
 namespace Time {
@@ -24,19 +24,19 @@ class DateTime
 {
 public:
        DateTime(const TimeStamp &);
-       DateTime(int32_t, uint8_t, uint8_t);
-       DateTime(int32_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t);
-       DateTime(int32_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint32_t);
+       DateTime(int, unsigned char, unsigned char);
+       DateTime(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char);
+       DateTime(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned);
        
-       int32_t  get_year() const   { return year; }
-       uint8_t  get_month() const  { return month; }
-       uint8_t  get_mday() const   { return mday; }
-       uint8_t  get_hour() const   { return hour; }
-       uint8_t  get_minute() const { return minute; }
-       uint8_t  get_second() const { return second; }
-       uint32_t get_usec() const   { return usec; }
+       int           get_year() const   { return year; }
+       unsigned char get_month() const  { return month; }
+       unsigned char get_mday() const   { return mday; }
+       unsigned char get_hour() const   { return hour; }
+       unsigned char get_minute() const { return minute; }
+       unsigned char get_second() const { return second; }
+       unsigned      get_usec() const   { return usec; }
 
-       void add_days(int32_t);
+       void add_days(int);
 
        DateTime operator+(const TimeDelta &) const;
        DateTime &operator+=(const TimeDelta &);
@@ -52,15 +52,15 @@ public:
        TimeStamp get_timestamp() const;
        std::string format(const std::string &) const;
 private:
-       int32_t year;
-       uint8_t month;
-       uint8_t mday;
-       uint8_t hour;
-       uint8_t minute;
-       uint8_t second;
-       uint32_t usec;
+       int           year;
+       unsigned char month;
+       unsigned char mday;
+       unsigned char hour;
+       unsigned char minute;
+       unsigned char second;
+       unsigned      usec;
 
-       void add_raw(int64_t);
+       void add_raw(RawTime);
        void normalize();
        void validate() const;
 };
index 7d3d4bb6d2a2ff706ca898582bc241fb72e1a7e2..81d33894134db889c8018c68ba2c3a74618ff79d 100644 (file)
@@ -12,7 +12,9 @@ using namespace std;
 
 namespace {
 
-void print_part(ostream &out, int64_t &value, int64_t unit, char sep, bool &first)
+using Msp::Time::RawTime;
+
+void print_part(ostream &out, RawTime &value, RawTime unit, char sep, bool &first)
 {
        if(value<unit && first)
                return;
@@ -35,7 +37,7 @@ ostream &operator<<(ostream &out, const TimeDelta &td)
        ostringstream ss;
        ss.fill('0');
 
-       int64_t value=td.raw();
+       RawTime value=td.raw();
 
        if(value<0)
        {
index a4595e6680e05ac8185b3e7273ec4acad8cc3136..ad985c7e2c1d13a7a738237c9d9f3af33c4b7212 100644 (file)
@@ -6,7 +6,6 @@ Distributed under the LGPL
 #ifndef MSP_TIME_TIMEDELTA_H_
 #define MSP_TIME_TIMEDELTA_H_
 
-#include <stdint.h>
 #include <time.h>
 #include <ostream>
 #include "types.h"
@@ -52,14 +51,14 @@ public:
        TimeDelta &operator-=(const TimeDelta &t)      { usec-=t.usec; return *this; }
 
        template<typename T>
-       TimeDelta operator*(T a) const                 { return TimeDelta(int64_t(usec*a)); }
+       TimeDelta operator*(T a) const                 { return TimeDelta(RawTime(usec*a)); }
        template<typename T>
-       TimeDelta &operator*=(T a)                     { usec=int64_t(usec*a); return *this; }
+       TimeDelta &operator*=(T a)                     { usec=RawTime(usec*a); return *this; }
 
        template<typename T>
-       TimeDelta operator/(T a) const                 { return TimeDelta(int64_t(usec/a)); }
+       TimeDelta operator/(T a) const                 { return TimeDelta(RawTime(usec/a)); }
        template<typename T>
-       TimeDelta &operator/=(T a)                     { usec=int64_t(usec/a); return *this; }
+       TimeDelta &operator/=(T a)                     { usec=RawTime(usec/a); return *this; }
 
        double    operator/(const TimeDelta &t) const  { return double(usec)/t.usec; }
 
index 6b264aff6cdadd4ad739e8bb14035bbe8a7798a9..2905c6ed5d23ad150172db2bc0b5f7ee0883cd50 100644 (file)
@@ -6,7 +6,6 @@ Distributed under the LGPL
 #ifndef MSP_TIME_TIMESTAMP_H_
 #define MSP_TIME_TIMESTAMP_H_
 
-#include <stdint.h>
 #include "timedelta.h"
 #include "types.h"
 
index 0d09ac8c7718af0831d6a4169e250126b633bdba..1befb9b72d0a30946659b0bf1c8dee83b4fc2884 100644 (file)
@@ -1,12 +1,18 @@
 #ifndef MSP_TIME_TYPES_H_
 #define MSP_TIME_TYPES_H_
 
+#ifndef WIN32
 #include <stdint.h>
+#endif
 
 namespace Msp {
 namespace Time {
 
+#ifdef WIN32
+typedef __int64 RawTime;
+#else
 typedef int64_t RawTime;
+#endif
 
 } // namespace Time
 } // namespace Msp
index f4a5379d44fb0418414d479f800b17d9b97916fc..c9cc94dd6ed4b2efa85b9f72f6c4fb6a7d94c2d7 100644 (file)
@@ -30,7 +30,7 @@ TimeStamp now()
        gettimeofday(&tv, 0);
        return TimeStamp(tv.tv_sec*1000000LL+tv.tv_usec);
 #else
-       static int64_t epoch=0;
+       static RawTime epoch=0;
        if(!epoch)
        {
                SYSTEMTIME st;
@@ -44,12 +44,12 @@ TimeStamp now()
 
                FILETIME ft;
                SystemTimeToFileTime(&st, &ft);
-               epoch=(ft.dwLowDateTime+((int64_t)ft.dwHighDateTime<<32))/10;
+               epoch=(ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10;
        }
        
        FILETIME ft;
        GetSystemTimeAsFileTime(&ft);
-       return TimeStamp((ft.dwLowDateTime+((int64_t)ft.dwHighDateTime<<32))/10-epoch);
+       return TimeStamp((ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10-epoch);
 #endif
 }