mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-02-07 12:50:32 +03:00
Added support for MSVC compiler
Added function 'timeradd'. Changed second parameter of 'gettimeofday' to void since not used in function and MSVC timezone definition is not a struct).
This commit is contained in:
parent
83cf908c88
commit
d52e9100d2
|
@ -140,6 +140,8 @@ static int pthread_mutex_init(pthread_mutex_t *mutex, void* fake)
|
||||||
#endif
|
#endif
|
||||||
#define strcasecmp(x, y) lstrcmpi(x, y)
|
#define strcasecmp(x, y) lstrcmpi(x, y)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "win32_support.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* what's this, we have no round function either? */
|
/* what's this, we have no round function either? */
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
src/port/gettimeofday.c in PostgreSQL core */
|
src/port/gettimeofday.c in PostgreSQL core */
|
||||||
|
|
||||||
/* FILETIME of Jan 1 1970 00:00:00. */
|
/* FILETIME of Jan 1 1970 00:00:00. */
|
||||||
static const unsigned __int64 epoch = 116444736000000000ULL;
|
static const unsigned __int64 epoch = ((unsigned __int64) 116444736000000000ULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* timezone information is stored outside the kernel so tzp isn't used anymore.
|
* timezone information is stored outside the kernel so tzp isn't used anymore.
|
||||||
|
@ -44,7 +44,7 @@ static const unsigned __int64 epoch = 116444736000000000ULL;
|
||||||
* elapsed_time().
|
* elapsed_time().
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
gettimeofday(struct timeval * tp, struct timezone * tzp)
|
gettimeofday(struct timeval * tp, void * tzp)
|
||||||
{
|
{
|
||||||
FILETIME file_time;
|
FILETIME file_time;
|
||||||
SYSTEMTIME system_time;
|
SYSTEMTIME system_time;
|
||||||
|
@ -60,17 +60,30 @@ gettimeofday(struct timeval * tp, struct timezone * tzp)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* timeradd missing on MS VC */
|
||||||
|
void
|
||||||
|
timeradd(struct timeval *a, struct timeval *b, struct timeval *c)
|
||||||
|
{
|
||||||
|
c->tv_sec = a->tv_sec + b->tv_sec;
|
||||||
|
c->tv_usec = a->tv_usec + b->tv_usec;
|
||||||
|
if(c->tv_usec >= 1000000L) {
|
||||||
|
c->tv_usec -= 1000000L;
|
||||||
|
c->tv_sec += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif /* !defined(__MINGW32__) */
|
#endif /* !defined(__MINGW32__) */
|
||||||
|
|
||||||
/* timersub is missing on mingw */
|
/* timersub is missing on mingw & MS VC */
|
||||||
void
|
void
|
||||||
timersub(struct timeval *a, struct timeval *b, struct timeval *c)
|
timersub(struct timeval *a, struct timeval *b, struct timeval *c)
|
||||||
{
|
{
|
||||||
c->tv_sec = a->tv_sec - b->tv_sec;
|
c->tv_sec = a->tv_sec - b->tv_sec;
|
||||||
c->tv_usec = a->tv_usec - b->tv_usec;
|
c->tv_usec = a->tv_usec - b->tv_usec;
|
||||||
if (tv_usec < 0) {
|
if (c->tv_usec < 0) {
|
||||||
c->tv_usec += 1000000;
|
c->tv_usec += 1000000;
|
||||||
c->tv_sec -= 1;
|
c->tv_sec -= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(_WIN32) */
|
#endif /* defined(_WIN32) */
|
||||||
|
|
|
@ -23,18 +23,26 @@
|
||||||
* License for more details.
|
* License for more details.
|
||||||
*/
|
*/
|
||||||
#ifndef PSYCOPG_WIN32_SUPPORT_H
|
#ifndef PSYCOPG_WIN32_SUPPORT_H
|
||||||
#define PSYCOPG_WIN32_SUPPORT_H 1
|
#define PSYCOPG_WIN32_SUPPORT_H
|
||||||
|
|
||||||
#include "psycopg/config.h"
|
#include "psycopg/config.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <time.h>
|
||||||
|
#endif
|
||||||
|
#ifdef __MINGW32__
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#ifndef __MINGW32__
|
#ifndef __MINGW32__
|
||||||
HIDDEN int gettimeofday(struct timeval * tp, struct timezone * tzp);
|
extern HIDDEN int gettimeofday(struct timeval * tp, void * tzp);
|
||||||
|
extern HIDDEN void timeradd(struct timeval *a, struct timeval *b, struct timeval *c);
|
||||||
|
#elif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
HIDDEN void timersub(struct timeval *a, struct timeval *b, struct timeval *c);
|
extern HIDDEN void timersub(struct timeval *a, struct timeval *b, struct timeval *c);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* !defined(PSYCOPG_WIN32_SUPPORT_H) */
|
#endif /* !defined(PSYCOPG_WIN32_SUPPORT_H) */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user