-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add platform files for porting to MSVC
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>
- Loading branch information
Frank Li
authored and
Junio C Hamano
committed
Sep 19, 2009
1 parent
16fe1e0
commit d75f8e6
Showing
3 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters