From 8d2bd90a2c9a151edc1619bf35be46b2fdda3e36 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Fri, 22 Mar 2013 11:01:39 -0500 Subject: [PATCH] win32_read_file: Use UTF16-LE name --- src/resource.c | 11 ++++++++--- src/win32.c | 4 ++-- src/win32.h | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/resource.c b/src/resource.c index 24730ab4..ee2b2941 100644 --- a/src/resource.c +++ b/src/resource.c @@ -46,6 +46,10 @@ # include #endif +#if defined(__WIN32__) && !defined(INVALID_HANDLE_VALUE) +# define INVALID_HANDLE_VALUE ((HANDLE)(-1)) +#endif + /* * Reads all or part of a compressed resource into an in-memory buffer. * @@ -570,9 +574,10 @@ read_wim_resource(const struct wim_lookup_table_entry *lte, void *buf, break; #ifdef __WIN32__ case RESOURCE_WIN32: - wimlib_assert(lte->file_on_disk_fp != NULL); - ret = win32_read_file(lte->file_on_disk, lte->file_on_disk_fp, - offset, size, buf); + wimlib_assert(lte->win32_file_on_disk_fp != INVALID_HANDLE_VALUE); + ret = win32_read_file(lte->win32_file_on_disk, + lte->win32_file_on_disk_fp, offset, size, + buf); break; #endif case RESOURCE_IN_ATTACHED_BUFFER: diff --git a/src/win32.c b/src/win32.c index ce94b049..0c5c51cd 100644 --- a/src/win32.c +++ b/src/win32.c @@ -159,7 +159,7 @@ win32_open_file_data_only(const wchar_t *path) } int -win32_read_file(const mbchar *filename, +win32_read_file(const utf16lechar *win32_filename, void *handle, u64 offset, size_t size, void *buf) { HANDLE h = handle; @@ -173,7 +173,7 @@ win32_read_file(const mbchar *filename, if (ReadFile(h, buf, size, &bytesRead, NULL) && bytesRead == size) return 0; err = GetLastError(); - ERROR("Error reading \"%s\"", filename); + ERROR("Error reading \"%ls\"", win32_filename); win32_error(err); return WIMLIB_ERR_READ; } diff --git a/src/win32.h b/src/win32.h index bef8da65..10392362 100644 --- a/src/win32.h +++ b/src/win32.h @@ -16,8 +16,8 @@ win32_build_dentry_tree(struct wim_dentry **root_ret, void *extra_arg); extern int -win32_read_file(const mbchar *filename, void *handle, u64 offset, - size_t size, void *buf); +win32_read_file(const utf16lechar *win32_filename, void *handle, + u64 offset, size_t size, void *buf); extern HANDLE win32_open_file_data_only(const wchar_t *path_utf16); -- 2.43.0