mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 06:42:03 +00:00
win32: add UTF-8 getcwd() wrapper
This commit is contained in:
parent
e2464b832b
commit
e0d93178b9
18
osdep/io.c
18
osdep/io.c
@ -335,6 +335,24 @@ int mp_mkdir(const char *path, int mode)
|
||||
return res;
|
||||
}
|
||||
|
||||
char *mp_win32_getcwd(char *buf, size_t size)
|
||||
{
|
||||
wchar_t *wres = _wgetcwd(NULL, 0);
|
||||
if (!wres)
|
||||
return NULL;
|
||||
char *t = mp_to_utf8(NULL, wres);
|
||||
free(wres);
|
||||
size_t st = strlen(t);
|
||||
if (st >= size) {
|
||||
talloc_free(t);
|
||||
errno = ERANGE;
|
||||
return NULL;
|
||||
}
|
||||
memcpy(buf, t, st + 1);
|
||||
talloc_free(t);
|
||||
return buf;
|
||||
}
|
||||
|
||||
FILE *mp_tmpfile(void)
|
||||
{
|
||||
// Reserve a file name in the format %TMP%\mpvXXXX.TMP
|
||||
|
@ -75,6 +75,7 @@ DIR *mp_opendir(const char *path);
|
||||
struct dirent *mp_readdir(DIR *dir);
|
||||
int mp_closedir(DIR *dir);
|
||||
int mp_mkdir(const char *path, int mode);
|
||||
char *mp_win32_getcwd(char *buf, size_t size);
|
||||
FILE *mp_tmpfile(void);
|
||||
char *mp_getenv(const char *name);
|
||||
off_t mp_lseek(int fd, off_t offset, int whence);
|
||||
@ -121,6 +122,7 @@ void mp_globfree(mp_glob_t *pglob);
|
||||
#define readdir(...) mp_readdir(__VA_ARGS__)
|
||||
#define closedir(...) mp_closedir(__VA_ARGS__)
|
||||
#define mkdir(...) mp_mkdir(__VA_ARGS__)
|
||||
#define getcwd(...) mp_win32_getcwd(__VA_ARGS__)
|
||||
#define tmpfile(...) mp_tmpfile(__VA_ARGS__)
|
||||
#define getenv(...) mp_getenv(__VA_ARGS__)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user