-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgnulib.c
39 lines (35 loc) · 1.06 KB
/
gnulib.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "gnulib.h"
#define fcloseall _fcloseall
#define fdopen _fdopen
#define fgetchar _fgetchar
#define fileno _fileno
#define flushall _flushall
#define fputchar _fputchar
#define getw _getw
#define putw _putw
#define rmtmp _rmtmp
char* getprogname() { return "gnulib-win32"; }
#include "gnulib/error.c"
#include "gnulib/exitfail.c"
#include "gnulib/getdelim.c"
#include "gnulib/getline.c"
#include "gnulib/getopt.c"
#include "gnulib/getopt1.c"
#include "gnulib/localcharset.c"
#include "gnulib/malloca.c"
#include "gnulib/obstack.c"
#include "gnulib/regex.c"
#include "gnulib/stat.c"
#include "gnulib/stat-w32.c"
#include "gnulib/strverscmp.c"
#include "gnulib/xalloc-die.c"
#include "gnulib/xmalloc.c"
ssize_t readlink_w32(const char* path, char* buf, size_t bufsiz) {
ssize_t retval = 0;
HANDLE hPath = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
if (hPath != INVALID_HANDLE_VALUE) {
retval = (ssize_t)GetFinalPathNameByHandleA(hPath, buf, bufsiz, FILE_NAME_OPENED);
CloseHandle(hPath);
}
return retval;
}