1 #include "../git-compat-util.h"
3 unsigned int _CRT_fmode
= _O_BINARY
;
6 int mingw_open (const char *filename
, int oflags
, ...)
10 va_start(args
, oflags
);
11 mode
= va_arg(args
, int);
14 if (!strcmp(filename
, "/dev/null"))
16 int fd
= open(filename
, oflags
, mode
);
17 if (fd
< 0 && (oflags
& O_CREAT
) && errno
== EACCES
) {
18 DWORD attrs
= GetFileAttributes(filename
);
19 if (attrs
!= INVALID_FILE_ATTRIBUTES
&& (attrs
& FILE_ATTRIBUTE_DIRECTORY
))
25 unsigned int sleep (unsigned int seconds
)
31 int mkstemp(char *template)
33 char *filename
= mktemp(template);
36 return open(filename
, O_RDWR
| O_CREAT
, 0600);
39 int gettimeofday(struct timeval
*tv
, void *tz
)
44 int poll(struct pollfd
*ufds
, unsigned int nfds
, int timeout
)
49 struct tm
*gmtime_r(const time_t *timep
, struct tm
*result
)
51 /* gmtime() in MSVCRT.DLL is thread-safe, but not reentrant */
52 memcpy(result
, gmtime(timep
), sizeof(struct tm
));
56 struct tm
*localtime_r(const time_t *timep
, struct tm
*result
)
58 /* localtime() in MSVCRT.DLL is thread-safe, but not reentrant */
59 memcpy(result
, localtime(timep
), sizeof(struct tm
));
64 char *mingw_getcwd(char *pointer
, int len
)
67 char *ret
= getcwd(pointer
, len
);
70 for (i
= 0; pointer
[i
]; i
++)
71 if (pointer
[i
] == '\\')
76 struct passwd
*getpwuid(int uid
)
78 static char user_name
[100];
79 static struct passwd p
;
81 DWORD len
= sizeof(user_name
);
82 if (!GetUserName(user_name
, &len
))
84 p
.pw_name
= user_name
;
85 p
.pw_gecos
= "unknown";
90 int setitimer(int type
, struct itimerval
*in
, struct itimerval
*out
)
95 int sigaction(int sig
, struct sigaction
*in
, struct sigaction
*out
)