Browse Source
Add msvc.c and msvc.h to build git under MSVC. Signed-off-by: Frank Li <lznuaa@gmail.com> Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Frank Li
15 years ago
committed by
Junio C Hamano
3 changed files with 93 additions and 0 deletions
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
#include "../git-compat-util.h" |
||||
#include "win32.h" |
||||
#include <conio.h> |
||||
#include "../strbuf.h" |
||||
|
||||
DIR *opendir(const char *name) |
||||
{ |
||||
int len; |
||||
DIR *p; |
||||
p = (DIR*)malloc(sizeof(DIR)); |
||||
memset(p, 0, sizeof(DIR)); |
||||
strncpy(p->dd_name, name, PATH_MAX); |
||||
len = strlen(p->dd_name); |
||||
p->dd_name[len] = '/'; |
||||
p->dd_name[len+1] = '*'; |
||||
|
||||
if (p == NULL) |
||||
return NULL; |
||||
|
||||
p->dd_handle = _findfirst(p->dd_name, &p->dd_dta); |
||||
|
||||
if (p->dd_handle == -1) { |
||||
free(p); |
||||
return NULL; |
||||
} |
||||
return p; |
||||
} |
||||
int closedir(DIR *dir) |
||||
{ |
||||
_findclose(dir->dd_handle); |
||||
free(dir); |
||||
return 0; |
||||
} |
||||
|
||||
#include "mingw.c" |
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
#ifndef __MSVC__HEAD |
||||
#define __MSVC__HEAD |
||||
|
||||
/* Define minimize windows version */ |
||||
#define WINVER 0x0500 |
||||
#define _WIN32_WINNT 0x0500 |
||||
#define _WIN32_WINDOWS 0x0410 |
||||
#define _WIN32_IE 0x0700 |
||||
#define NTDDI_VERSION NTDDI_WIN2KSP1 |
||||
#include <winsock2.h> |
||||
#include <direct.h> |
||||
#include <process.h> |
||||
#include <malloc.h> |
||||
|
||||
/* porting function */ |
||||
#define inline __inline |
||||
#define __inline__ __inline |
||||
#define __attribute__(x) |
||||
#define va_copy(dst, src) ((dst) = (src)) |
||||
|
||||
static __inline int strcasecmp (const char *s1, const char *s2) |
||||
{ |
||||
int size1 = strlen(s1); |
||||
int sisz2 = strlen(s2); |
||||
return _strnicmp(s1, s2, sisz2 > size1 ? sisz2 : size1); |
||||
} |
||||
|
||||
#undef ERROR |
||||
#undef stat |
||||
#undef _stati64 |
||||
#include "compat/mingw.h" |
||||
#undef stat |
||||
#define stat _stati64 |
||||
#define _stat64(x,y) mingw_lstat(x,y) |
||||
|
||||
/* |
||||
Even though _stati64 is normally just defined at _stat64 |
||||
on Windows, we specify it here as a proper struct to avoid |
||||
compiler warnings about macro redefinition due to magic in |
||||
mingw.h. Struct taken from ReactOS (GNU GPL license). |
||||
*/ |
||||
struct _stati64 { |
||||
_dev_t st_dev; |
||||
_ino_t st_ino; |
||||
unsigned short st_mode; |
||||
short st_nlink; |
||||
short st_uid; |
||||
short st_gid; |
||||
_dev_t st_rdev; |
||||
__int64 st_size; |
||||
time_t st_atime; |
||||
time_t st_mtime; |
||||
time_t st_ctime; |
||||
}; |
||||
#endif |
Loading…
Reference in new issue