diff options
Diffstat (limited to 'src/share/win_utf8_io/win_utf8_io.c')
-rw-r--r-- | src/share/win_utf8_io/win_utf8_io.c | 141 |
1 files changed, 1 insertions, 140 deletions
diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c index 6b5c56c3..6cb40332 100644 --- a/src/share/win_utf8_io/win_utf8_io.c +++ b/src/share/win_utf8_io/win_utf8_io.c @@ -103,8 +103,6 @@ static wchar_t *wchar_from_utf8(const char *str) return widestr; } -static void set_filename_utf8(int b); - /* retrieve WCHAR commandline, expand wildcards and convert everything to UTF-8 */ int get_utf8_argv(int *argc, char ***argv) { @@ -144,7 +142,7 @@ int get_utf8_argv(int *argc, char ***argv) FreeLibrary(handle); /* do not free it when wargv or wenv are still in use */ if (ret == 0) { - set_filename_utf8(1); + flac_set_utf8_filenames(true); *argc = wargc; *argv = utf8argv; } else { @@ -258,140 +256,3 @@ int vfprintf_utf8(FILE *stream, const char *format, va_list argptr) return ret; } - -/* file functions */ - -static int utf8_filename = 0; - -static void set_filename_utf8(int b) -{ - utf8_filename = b ? 1: 0; -} - -FILE *fopen_utf8(const char *filename, const char *mode) -{ - if (0 == utf8_filename) { - return fopen(filename, mode); - } else { - wchar_t *wname = NULL; - wchar_t *wmode = NULL; - FILE *f = NULL; - - do { - if (!(wname = wchar_from_utf8(filename))) break; - if (!(wmode = wchar_from_utf8(mode))) break; - f = _wfopen(wname, wmode); - } while(0); - - free(wname); - free(wmode); - - return f; - } -} - -int _stat64_utf8(const char *path, struct __stat64 *buffer) -{ - if (0 == utf8_filename) { - return _stat64(path, buffer); - } else { - wchar_t *wpath; - int ret; - - if (!(wpath = wchar_from_utf8(path))) return -1; - ret = _wstat64(wpath, buffer); - free(wpath); - - return ret; - } -} - -int chmod_utf8(const char *filename, int pmode) -{ - if (0 == utf8_filename) { - return _chmod(filename, pmode); - } else { - wchar_t *wname; - int ret; - - if (!(wname = wchar_from_utf8(filename))) return -1; - ret = _wchmod(wname, pmode); - free(wname); - - return ret; - } -} - -int utime_utf8(const char *filename, struct utimbuf *times) -{ - if (0 == utf8_filename) { - return utime(filename, times); - } else { - wchar_t *wname; - struct __utimbuf64 ut; - int ret; - - if (!(wname = wchar_from_utf8(filename))) return -1; - ut.actime = times->actime; - ut.modtime = times->modtime; - ret = _wutime64(wname, &ut); - free(wname); - - return ret; - } -} - -int unlink_utf8(const char *filename) -{ - if (0 == utf8_filename) { - return _unlink(filename); - } else { - wchar_t *wname; - int ret; - - if (!(wname = wchar_from_utf8(filename))) return -1; - ret = _wunlink(wname); - free(wname); - - return ret; - } -} - -int rename_utf8(const char *oldname, const char *newname) -{ - if (0 == utf8_filename) { - return rename(oldname, newname); - } else { - wchar_t *wold = NULL; - wchar_t *wnew = NULL; - int ret = -1; - - do { - if (!(wold = wchar_from_utf8(oldname))) break; - if (!(wnew = wchar_from_utf8(newname))) break; - ret = _wrename(wold, wnew); - } while(0); - - free(wold); - free(wnew); - - return ret; - } -} - -HANDLE WINAPI CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) -{ - if (0 == utf8_filename) { - return CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); - } else { - wchar_t *wname; - HANDLE handle = INVALID_HANDLE_VALUE; - - if ((wname = wchar_from_utf8(lpFileName)) != NULL) { - handle = CreateFileW(wname, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); - free(wname); - } - - return handle; - } -} |