mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-27 15:01:03 +08:00
Add realpath() for Win32
This commit is contained in:
parent
af3a0f6af0
commit
92d3c7a4cd
@ -517,7 +517,11 @@ struct mg_fs mg_fs_packed = {packed_stat, packed_list, packed_open,
|
||||
|
||||
#if MG_ENABLE_FILE
|
||||
static int p_stat(const char *path, size_t *size, time_t *mtime) {
|
||||
#ifdef _WIN32
|
||||
#if !defined(S_ISDIR)
|
||||
LOG(LL_ERROR, ("stat() API is not supported. %p %p %p", path, size, mtime));
|
||||
return 0;
|
||||
#else
|
||||
#if defined(_WIN32)
|
||||
struct _stati64 st;
|
||||
wchar_t tmp[PATH_MAX];
|
||||
MultiByteToWideChar(CP_UTF8, 0, path, -1, tmp, sizeof(tmp) / sizeof(tmp[0]));
|
||||
@ -529,6 +533,7 @@ static int p_stat(const char *path, size_t *size, time_t *mtime) {
|
||||
if (size) *size = (size_t) st.st_size;
|
||||
if (mtime) *mtime = st.st_mtime;
|
||||
return MG_FS_READ | MG_FS_WRITE | (S_ISDIR(st.st_mode) ? MG_FS_DIR : 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
@ -387,7 +387,6 @@ typedef enum { false = 0, true = 1 } bool;
|
||||
// Protect from calls like std::snprintf in app code
|
||||
// See https://github.com/cesanta/mongoose/issues/1047
|
||||
#ifndef __cplusplus
|
||||
#define sleep(x) Sleep(x)
|
||||
#define snprintf _snprintf
|
||||
#define vsnprintf _vsnprintf
|
||||
#ifndef strdup // For MSVC with _DEBUG, see #1359
|
||||
@ -408,6 +407,9 @@ typedef int socklen_t;
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
|
||||
#define realpath(a, b) _fullpath((b), (a), MG_PATH_MAX)
|
||||
#define sleep(x) Sleep(x)
|
||||
|
||||
#ifndef va_copy
|
||||
#ifdef __va_copy
|
||||
#define va_copy __va_copy
|
||||
|
Loading…
x
Reference in New Issue
Block a user