Simplified by replacing "discard_source" and "discard_temp" ops with "remove" op
diff --git a/lib/zip_source_win32w.c b/lib/zip_source_win32w.c
index 1a3ff28..aeb6542 100644
--- a/lib/zip_source_win32w.c
+++ b/lib/zip_source_win32w.c
@@ -42,16 +42,14 @@
static HANDLE _win32_open_w(_zip_source_win32_read_file_t *ctx);
static HANDLE _win32_create_temp_w(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32_t value);
static int _win32_rename_temp_w(_zip_source_win32_read_file_t *ctx);
-static int _win32_discard_source_w(_zip_source_win32_read_file_t *ctx);
-static int _win32_discard_temp_w(_zip_source_win32_read_file_t *ctx);
+static int _win32_remove_w(const void *fname);
static _zip_source_win32_file_ops_t win32_ops_w = {
- .op_strdup = _win32_strdup_w,
- .op_open = _win32_open_w,
- .op_create_temp = _win32_create_temp_w,
- .op_rename_temp = _win32_rename_temp_w,
- .op_discard_source = _win32_discard_source_w,
- .op_discard_temp = _win32_discard_temp_w
+ .op_strdup = _win32_strdup_w,
+ .op_open = _win32_open_w,
+ .op_create_temp = _win32_create_temp_w,
+ .op_rename_temp = _win32_rename_temp_w,
+ .op_remove = _win32_remove_w
};
ZIP_EXTERN zip_source_t *
@@ -122,19 +120,8 @@
int
-_win32_discard_source_w(_zip_source_win32_read_file_t *ctx)
+_win32_remove_w(const void *fname)
{
- if (!DeleteFileW(ctx->fname)) {
- zip_error_set(&ctx->error, ZIP_ER_REMOVE, _zip_set_win32_error(GetLastError(), &ctx->win32err));
- return -1;
- }
- return 0;
-}
-
-
-int
-_win32_discard_temp_w(_zip_source_win32_read_file_t *ctx)
-{
- DeleteFileW(ctx->tmpname);
+ DeleteFileW((const wchar_t *)fname);
return 0;
}