Improve naming to better reflect intentions.
diff --git a/developer-xcode/libzip.xcodeproj/project.pbxproj b/developer-xcode/libzip.xcodeproj/project.pbxproj
index 02f145f..7049698 100644
--- a/developer-xcode/libzip.xcodeproj/project.pbxproj
+++ b/developer-xcode/libzip.xcodeproj/project.pbxproj
@@ -182,7 +182,7 @@
4B82CED519915F360097BC18 /* zip_file_set_mtime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B82CED319915F360097BC18 /* zip_file_set_mtime.c */; };
4B908F532385BE6D00886355 /* zip_libzip_version.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B908F502385BE6C00886355 /* zip_libzip_version.c */; };
4B908F552385BE6D00886355 /* zip_source_accept_empty.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B908F522385BE6D00886355 /* zip_source_accept_empty.c */; };
- 4B93995A24631B3E00AEBDA4 /* zip_source_file_stdio_write.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_write.c */; };
+ 4B93995A24631B3E00AEBDA4 /* zip_source_file_stdio_named.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_named.c */; };
4B93995B24631B3E00AEBDA4 /* zip_source_file_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B93995624631B3E00AEBDA4 /* zip_source_file_common.c */; };
4B93995C24631B3E00AEBDA4 /* zip_source_file_stdio.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B93995724631B3E00AEBDA4 /* zip_source_file_stdio.c */; };
4B93995D24631B3E00AEBDA4 /* zip_source_file_stdio.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B93995824631B3E00AEBDA4 /* zip_source_file_stdio.h */; };
@@ -627,7 +627,7 @@
4B82CED319915F360097BC18 /* zip_file_set_mtime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_set_mtime.c; sourceTree = "<group>"; };
4B908F502385BE6C00886355 /* zip_libzip_version.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_libzip_version.c; sourceTree = "<group>"; };
4B908F522385BE6D00886355 /* zip_source_accept_empty.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_accept_empty.c; sourceTree = "<group>"; };
- 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_file_stdio_write.c; sourceTree = "<group>"; };
+ 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_named.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_file_stdio_named.c; sourceTree = "<group>"; };
4B93995624631B3E00AEBDA4 /* zip_source_file_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_file_common.c; sourceTree = "<group>"; };
4B93995724631B3E00AEBDA4 /* zip_source_file_stdio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_file_stdio.c; sourceTree = "<group>"; };
4B93995824631B3E00AEBDA4 /* zip_source_file_stdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zip_source_file_stdio.h; sourceTree = "<group>"; };
@@ -637,7 +637,7 @@
4B93996124641D5700AEBDA4 /* zip_source_file_win32_ansi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_file_win32_ansi.c; sourceTree = "<group>"; };
4B93996224643F5700AEBDA4 /* zip_source_file_win32_utf8.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_file_win32_utf8.c; sourceTree = "<group>"; };
4B9399632464401300AEBDA4 /* zip_source_file_win32_utf16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_source_file_win32_utf16.c; sourceTree = "<group>"; };
- 4B93996424644E7E00AEBDA4 /* zip_source_file_win32_write.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_file_win32_write.c; sourceTree = "<group>"; };
+ 4B93996424644E7E00AEBDA4 /* zip_source_file_win32_named.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_file_win32_named.c; sourceTree = "<group>"; };
4B939965246553FD00AEBDA4 /* appveyor.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = appveyor.yml; sourceTree = "<group>"; };
4B97204D188EBE85002FAFAD /* zip_file_get_external_attributes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_get_external_attributes.c; sourceTree = "<group>"; };
4B97204E188EBE85002FAFAD /* zip_file_set_external_attributes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip_file_set_external_attributes.c; sourceTree = "<group>"; };
@@ -1496,12 +1496,12 @@
4BDC722A15B1B25E00236D3C /* zip_source_crc.c */,
4BDC722C15B1B25E00236D3C /* zip_source_error.c */,
4B93995624631B3E00AEBDA4 /* zip_source_file_common.c */,
- 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_write.c */,
+ 4B93995524631B3D00AEBDA4 /* zip_source_file_stdio_named.c */,
4B93995724631B3E00AEBDA4 /* zip_source_file_stdio.c */,
4B93995824631B3E00AEBDA4 /* zip_source_file_stdio.h */,
4B93996024640B1700AEBDA4 /* zip_source_file_win32.c */,
4B93996124641D5700AEBDA4 /* zip_source_file_win32_ansi.c */,
- 4B93996424644E7E00AEBDA4 /* zip_source_file_win32_write.c */,
+ 4B93996424644E7E00AEBDA4 /* zip_source_file_win32_named.c */,
4B9399632464401300AEBDA4 /* zip_source_file_win32_utf16.c */,
4B93996224643F5700AEBDA4 /* zip_source_file_win32_utf8.c */,
4B93995F24640B1700AEBDA4 /* zip_source_file_win32.h */,
@@ -1920,7 +1920,7 @@
4BD7087A1EB1CF73003F351F /* zip_progress.c in Sources */,
4B01D6AC15B2F46B002D5007 /* zip_dirent.c in Sources */,
4B00CA24242F59D700E0B71C /* zip_source_pkware_decode.c in Sources */,
- 4B93995A24631B3E00AEBDA4 /* zip_source_file_stdio_write.c in Sources */,
+ 4B93995A24631B3E00AEBDA4 /* zip_source_file_stdio_named.c in Sources */,
4B01D6AD15B2F46B002D5007 /* zip_discard.c in Sources */,
4B00CA25242F59D700E0B71C /* zip_pkware.c in Sources */,
4B01D6AE15B2F46B002D5007 /* zip_entry.c in Sources */,
diff --git a/lib/zip_source_file_stdio_write.c b/lib/zip_source_file_stdio_named.c
similarity index 96%
rename from lib/zip_source_file_stdio_write.c
rename to lib/zip_source_file_stdio_named.c
index 30054c4..84f57a4 100644
--- a/lib/zip_source_file_stdio_write.c
+++ b/lib/zip_source_file_stdio_named.c
@@ -1,6 +1,6 @@
/*
- zip_source_file_stdio_write.c -- read/write stdio file source implementation
- Copyright (C) 2020 Dieter Baron and Thomas Klausner
+ zip_source_file_stdio_named.c -- source for stdio file opened by name
+ Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -62,7 +62,7 @@
static zip_int64_t _zip_stdio_op_write(zip_source_file_context_t *ctx, const void *data, zip_uint64_t len);
/* clang-format off */
-static zip_source_file_operations_t ops_stdio_write = {
+static zip_source_file_operations_t ops_stdio_named = {
_zip_stdio_op_close,
_zip_stdio_op_commit_write,
_zip_stdio_op_create_temp_output,
@@ -99,7 +99,7 @@
return NULL;
}
- return zip_source_file_common_new(fname, NULL, start, length, NULL, &ops_stdio_write, NULL, error);
+ return zip_source_file_common_new(fname, NULL, start, length, NULL, &ops_stdio_named, NULL, error);
}
diff --git a/lib/zip_source_file_win32.c b/lib/zip_source_file_win32.c
index f79d95f..2fe838f 100644
--- a/lib/zip_source_file_win32.c
+++ b/lib/zip_source_file_win32.c
@@ -132,18 +132,6 @@
zip_int64_t
-_zip_win32_op_write(zip_source_file_context_t *ctx, const void *data, zip_uint64_t len) {
- DWORD ret;
- if (!WriteFile((HANDLE)ctx->fout, data, (DWORD)len, &ret, NULL) || ret != len) {
- zip_error_set(&ctx->error, ZIP_ER_WRITE, _zip_win32_error_to_errno(GetLastError()));
- return -1;
- }
-
- return (zip_int64_t)ret;
-}
-
-
-zip_int64_t
_zip_win32_op_tell(zip_source_file_context_t *ctx, void *f) {
LARGE_INTEGER zero;
LARGE_INTEGER new_offset;
diff --git a/lib/zip_source_file_win32.h b/lib/zip_source_file_win32.h
index 5d925da..5092e63 100644
--- a/lib/zip_source_file_win32.h
+++ b/lib/zip_source_file_win32.h
@@ -47,7 +47,7 @@
#include "zip_source_file.h"
-struct zip_source_file_win32_write_operations {
+struct zip_win32_file_operations {
char *(*allocate_tempname)(const char *name, size_t extra_chars, size_t *lengthp);
HANDLE (__stdcall *create_file)(const void *name, DWORD access, DWORD share_mode, PSECURITY_ATTRIBUTES security_attributes, DWORD creation_disposition, DWORD file_attributes, HANDLE template_file);
BOOL (__stdcall *delete_file)(const void *name);
@@ -59,15 +59,14 @@
char *(*string_duplicate)(const char *string);
};
-typedef struct zip_source_file_win32_write_operations zip_source_file_win32_write_operations_t;
+typedef struct zip_win32_file_operations zip_win32_file_operations_t;
-extern zip_source_file_operations_t _zip_source_file_win32_write_ops;
+extern zip_source_file_operations_t _zip_source_file_win32_named_ops;
void _zip_win32_op_close(zip_source_file_context_t *ctx);
zip_int64_t _zip_win32_op_read(zip_source_file_context_t *ctx, void *buf, zip_uint64_t len);
bool _zip_win32_op_seek(zip_source_file_context_t *ctx, void *f, zip_int64_t offset, int whence);
zip_int64_t _zip_win32_op_tell(zip_source_file_context_t *ctx, void *f);
-zip_int64_t _zip_win32_op_write(zip_source_file_context_t *ctx, const void *data, zip_uint64_t len);
bool _zip_filetime_to_time_t(FILETIME ft, time_t *t);
int _zip_win32_error_to_errno(DWORD win32err);
diff --git a/lib/zip_source_file_win32_ansi.c b/lib/zip_source_file_win32_ansi.c
index 1869a12..573b74e 100644
--- a/lib/zip_source_file_win32_ansi.c
+++ b/lib/zip_source_file_win32_ansi.c
@@ -1,5 +1,5 @@
/*
- zip_source_file_win32_ansi.c -- Windows file source write operations for ANSI interface
+ zip_source_file_win32_ansi.c -- source for Windows file opened by ANSI name
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
@@ -36,7 +36,7 @@
static char *ansi_allocate_tempname(const char *name, size_t extra_chars, size_t *lengthp);
static void ansi_make_tempname(char *buf, size_t len, const char *name, zip_uint32_t i);
-zip_source_file_win32_write_operations_t ops_ansi = {
+zip_win32_file_operations_t ops_ansi = {
ansi_allocate_tempname,
CreateFileA,
DeleteFileA,
@@ -64,7 +64,7 @@
return NULL;
}
- return zip_source_file_common_new(fname, NULL, start, length, NULL, &_zip_source_file_win32_write_ops, &ops_ansi, error);
+ return zip_source_file_common_new(fname, NULL, start, length, NULL, &_zip_source_file_win32_named_ops, &ops_ansi, error);
}
diff --git a/lib/zip_source_file_win32_write.c b/lib/zip_source_file_win32_named.c
similarity index 62%
rename from lib/zip_source_file_win32_write.c
rename to lib/zip_source_file_win32_named.c
index 6636e34..dd3c6cf 100644
--- a/lib/zip_source_file_win32_write.c
+++ b/lib/zip_source_file_win32_named.c
@@ -1,5 +1,5 @@
/*
- zip_source_file_win32_write.c -- read/write Windows file source implementation
+ zip_source_file_win32_named.c -- source for Windows file opened by name
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
@@ -33,58 +33,58 @@
#include "zip_source_file_win32.h"
-static zip_int64_t _zip_win32_write_op_commit_write(zip_source_file_context_t *ctx);
-static zip_int64_t _zip_win32_write_op_create_temp_output(zip_source_file_context_t *ctx);
-static zip_int64_t _zip_win32_write_op_commit_write(zip_source_file_context_t *ctx);
-static bool _zip_win32_write_op_open(zip_source_file_context_t *ctx);
-static zip_int64_t _zip_win32_write_op_remove(zip_source_file_context_t *ctx);
-static void _zip_win32_write_op_rollback_write(zip_source_file_context_t *ctx);
-static bool _zip_win32_write_op_stat(zip_source_file_context_t *ctx, zip_source_file_stat_t *st);
-static char *_zip_win32_write_strdup(zip_source_file_context_t *ctx, const char *string);
+static zip_int64_t _zip_win32_named_op_commit_write(zip_source_file_context_t *ctx);
+static zip_int64_t _zip_win32_named_op_create_temp_output(zip_source_file_context_t *ctx);
+static bool _zip_win32_named_op_open(zip_source_file_context_t *ctx);
+static zip_int64_t _zip_win32_named_op_remove(zip_source_file_context_t *ctx);
+static void _zip_win32_named_op_rollback_write(zip_source_file_context_t *ctx);
+static bool _zip_win32_named_op_stat(zip_source_file_context_t *ctx, zip_source_file_stat_t *st);
+static char *_zip_win32_named_op_string_duplicate(zip_source_file_context_t *ctx, const char *string);
+static zip_int64_t _zip_win32_named_op_write(zip_source_file_context_t *ctx, const void *data, zip_uint64_t len);
-static HANDLE win32_write_open(zip_source_file_context_t *ctx, const char *name, bool temporary, PSECURITY_ATTRIBUTES security_attributes);
+static HANDLE win32_named_open(zip_source_file_context_t *ctx, const char *name, bool temporary, PSECURITY_ATTRIBUTES security_attributes);
/* clang-format off */
-zip_source_file_operations_t _zip_source_file_win32_write_ops = {
+zip_source_file_operations_t _zip_source_file_win32_named_ops = {
_zip_win32_op_close,
- _zip_win32_write_op_commit_write,
- _zip_win32_write_op_create_temp_output,
+ _zip_win32_named_op_commit_write,
+ _zip_win32_named_op_create_temp_output,
NULL,
- _zip_win32_write_op_open,
+ _zip_win32_named_op_open,
_zip_win32_op_read,
- _zip_win32_write_op_remove,
- _zip_win32_write_op_rollback_write,
+ _zip_win32_named_op_remove,
+ _zip_win32_named_op_rollback_write,
_zip_win32_op_seek,
- _zip_win32_write_op_stat,
- _zip_win32_write_strdup,
+ _zip_win32_named_op_stat,
+ _zip_win32_named_op_string_duplicate,
_zip_win32_op_tell,
- _zip_win32_op_write
+ _zip_win32_named_op_write
};
/* clang-format on */
static zip_int64_t
-_zip_win32_write_op_commit_write(zip_source_file_context_t *ctx) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_commit_write(zip_source_file_context_t *ctx) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
if (!CloseHandle((HANDLE)ctx->fout)) {
zip_error_set(&ctx->error, ZIP_ER_WRITE, _zip_win32_error_to_errno(GetLastError()));
return -1;
}
- DWORD attributes = write_ops->get_file_attributes(ctx->tmpname);
+ DWORD attributes = file_ops->get_file_attributes(ctx->tmpname);
if (attributes == INVALID_FILE_ATTRIBUTES) {
zip_error_set(&ctx->error, ZIP_ER_RENAME, _zip_win32_error_to_errno(GetLastError()));
return -1;
}
if (attributes & FILE_ATTRIBUTE_TEMPORARY) {
- if (!write_ops->set_file_attributes(ctx->tmpname, attributes & ~FILE_ATTRIBUTE_TEMPORARY)) {
+ if (!file_ops->set_file_attributes(ctx->tmpname, attributes & ~FILE_ATTRIBUTE_TEMPORARY)) {
zip_error_set(&ctx->error, ZIP_ER_RENAME, _zip_win32_error_to_errno(GetLastError()));
return -1;
}
}
- if (!write_ops->move_file(ctx->tmpname, ctx->fname, MOVEFILE_REPLACE_EXISTING)) {
+ if (!file_ops->move_file(ctx->tmpname, ctx->fname, MOVEFILE_REPLACE_EXISTING)) {
zip_error_set(&ctx->error, ZIP_ER_RENAME, _zip_win32_error_to_errno(GetLastError()));
return -1;
}
@@ -93,8 +93,8 @@
}
static zip_int64_t
-_zip_win32_write_op_create_temp_output(zip_source_file_context_t *ctx) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_create_temp_output(zip_source_file_context_t *ctx) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
zip_uint32_t value, i;
HANDLE th = INVALID_HANDLE_VALUE;
@@ -125,15 +125,15 @@
value = (zip_uint32_t)(GetTickCount64() & 0xffffffff);
#endif
- if ((tempname = write_ops->allocate_tempname(ctx->fname, 10, &tempname_size)) == NULL) {
+ if ((tempname = file_ops->allocate_tempname(ctx->fname, 10, &tempname_size)) == NULL) {
zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0);
return -1;
}
for (i = 0; i < 1024 && th == INVALID_HANDLE_VALUE; i++) {
- write_ops->make_tempname(tempname, tempname_size, ctx->fname, value + i);
+ file_ops->make_tempname(tempname, tempname_size, ctx->fname, value + i);
- th = win32_write_open(ctx, tempname, true, psa);
+ th = win32_named_open(ctx, tempname, true, psa);
if (th == INVALID_HANDLE_VALUE && GetLastError() != ERROR_FILE_EXISTS)
break;
}
@@ -154,8 +154,8 @@
static bool
-_zip_win32_write_op_open(zip_source_file_context_t *ctx) {
- HANDLE h = win32_write_open(ctx, ctx->fname, false, NULL);
+_zip_win32_named_op_open(zip_source_file_context_t *ctx) {
+ HANDLE h = win32_named_open(ctx, ctx->fname, false, NULL);
if (h == INVALID_HANDLE_VALUE) {
return false;
@@ -167,10 +167,10 @@
static zip_int64_t
-_zip_win32_write_op_remove(zip_source_file_context_t *ctx) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_remove(zip_source_file_context_t *ctx) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
- if (!write_ops->delete_file(ctx->fname)) {
+ if (!file_ops->delete_file(ctx->fname)) {
zip_error_set(&ctx->error, ZIP_ER_REMOVE, _zip_win32_error_to_errno(GetLastError()));
return -1;
}
@@ -180,23 +180,23 @@
static void
-_zip_win32_write_op_rollback_write(zip_source_file_context_t *ctx) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_rollback_write(zip_source_file_context_t *ctx) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
if (ctx->fout) {
CloseHandle((HANDLE)ctx->fout);
}
- write_ops->delete_file(ctx->tmpname);
+ file_ops->delete_file(ctx->tmpname);
}
static bool
-_zip_win32_write_op_stat(zip_source_file_context_t *ctx, zip_source_file_stat_t *st) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_stat(zip_source_file_context_t *ctx, zip_source_file_stat_t *st) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
WIN32_FILE_ATTRIBUTE_DATA file_attributes;
- if (!write_ops->get_file_attributes_ex(ctx->fname, GetFileExInfoStandard, &file_attributes)) {
+ if (!file_ops->get_file_attributes_ex(ctx->fname, GetFileExInfoStandard, &file_attributes)) {
DWORD error = GetLastError();
if (error == ERROR_FILE_NOT_FOUND) {
st->exists = false;
@@ -221,17 +221,28 @@
static char *
-_zip_win32_write_strdup(zip_source_file_context_t *ctx, const char *string) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+_zip_win32_named_op_string_duplicate(zip_source_file_context_t *ctx, const char *string) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
- return write_ops->string_duplicate(string);
+ return file_ops->string_duplicate(string);
}
+static zip_int64_t
+_zip_win32_named_op_write(zip_source_file_context_t *ctx, const void *data, zip_uint64_t len) {
+ DWORD ret;
+ if (!WriteFile((HANDLE)ctx->fout, data, (DWORD)len, &ret, NULL) || ret != len) {
+ zip_error_set(&ctx->error, ZIP_ER_WRITE, _zip_win32_error_to_errno(GetLastError()));
+ return -1;
+ }
+
+ return (zip_int64_t)ret;
+}
+
static HANDLE
-win32_write_open(zip_source_file_context_t *ctx, const char *name, bool temporary, PSECURITY_ATTRIBUTES security_attributes) {
- zip_source_file_win32_write_operations_t *write_ops = (zip_source_file_win32_write_operations_t *)ctx->ops_userdata;
+win32_named_open(zip_source_file_context_t *ctx, const char *name, bool temporary, PSECURITY_ATTRIBUTES security_attributes) {
+ _zip_win32_file_operations_t *file_ops = (_zip_win32_file_operations_t *)ctx->ops_userdata;
DWORD access = GENERIC_READ;
DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
@@ -245,7 +256,7 @@
file_attributes = FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_TEMPORARY;
}
- HANDLE h = write_ops->create_file(name, access, share_mode, security_attributes, creation_disposition, file_attributes, NULL);
+ HANDLE h = file_ops->create_file(name, access, share_mode, security_attributes, creation_disposition, file_attributes, NULL);
if (h == INVALID_HANDLE_VALUE) {
zip_error_set(&ctx->error, ZIP_ER_OPEN, _zip_win32_error_to_errno(GetLastError()));
diff --git a/lib/zip_source_file_win32_utf16.c b/lib/zip_source_file_win32_utf16.c
index f515528..8d48550 100644
--- a/lib/zip_source_file_win32_utf16.c
+++ b/lib/zip_source_file_win32_utf16.c
@@ -1,5 +1,5 @@
/*
- zip_source_file_win32_utf16.c -- Windows file source write operations for UTF-16 interface
+ zip_source_file_win32_utf16.c -- source for Windows file opened by UTF-16 name
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
@@ -38,7 +38,7 @@
static void utf16_make_tempname(char *buf, size_t len, const char *name, zip_uint32_t i);
static char *utf16_strdup(const char *string);
-zip_source_file_win32_write_operations_t ops_utf16 = {
+zip_win32_file_operations_t ops_utf16 = {
utf16_allocate_tempname,
utf16_create_file,
DeleteFileW,
@@ -67,7 +67,7 @@
}
- return zip_source_file_common_new((const char *)fname, NULL, start, length, NULL, &_zip_source_file_win32_write_ops, &ops_utf16, error);
+ return zip_source_file_common_new((const char *)fname, NULL, start, length, NULL, &_zip_source_file_win32_named_ops, &ops_utf16, error);
}
diff --git a/lib/zip_source_file_win32_utf8.c b/lib/zip_source_file_win32_utf8.c
index eaeacdc..4f258bc 100644
--- a/lib/zip_source_file_win32_utf8.c
+++ b/lib/zip_source_file_win32_utf8.c
@@ -1,5 +1,5 @@
/*
- zip_source_file_win32_ansi.c -- read/write Windows UTF-8 file source implementation
+ zip_source_file_win32_ansi.c -- source for Windows file opened by UTF-8 name
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.