VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common/libzip/zip_string.c
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2025-01-01 10:37:56 +0100
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2025-01-01 10:37:56 +0100
commit138e5e7c1dfba4717a4e6d5abb1abb0f82d6f49f (patch)
treefd6bc3d389d162a9f555a415e410e84cd7988492 /src/Common/libzip/zip_string.c
parentfcc6302e6139b5b4714c91fd91d215c77af7695c (diff)
downloadVeraCrypt-138e5e7c1dfba4717a4e6d5abb1abb0f82d6f49f.tar.gz
VeraCrypt-138e5e7c1dfba4717a4e6d5abb1abb0f82d6f49f.zip
Windows: Update libzip to version 1.11.2
Diffstat (limited to 'src/Common/libzip/zip_string.c')
-rw-r--r--src/Common/libzip/zip_string.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/Common/libzip/zip_string.c b/src/Common/libzip/zip_string.c
index 1c964491..bb06c1d6 100644
--- a/src/Common/libzip/zip_string.c
+++ b/src/Common/libzip/zip_string.c
@@ -1,6 +1,6 @@
/*
zip_string.c -- string handling (with encoding)
- Copyright (C) 2012-2021 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2024 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <info@libzip.org>
@@ -88,8 +88,10 @@ _zip_string_get(zip_string_t *string, zip_uint32_t *lenp, zip_flags_t flags, zip
if ((flags & ZIP_FL_ENC_RAW) == 0) {
/* start guessing */
- if (string->encoding == ZIP_ENCODING_UNKNOWN)
- _zip_guess_encoding(string, ZIP_ENCODING_UNKNOWN);
+ if (string->encoding == ZIP_ENCODING_UNKNOWN) {
+ /* guess encoding, sets string->encoding */
+ (void)_zip_guess_encoding(string, ZIP_ENCODING_UNKNOWN);
+ }
if (((flags & ZIP_FL_ENC_STRICT) && string->encoding != ZIP_ENCODING_ASCII && string->encoding != ZIP_ENCODING_UTF8_KNOWN) || (string->encoding == ZIP_ENCODING_CP437)) {
if (string->converted == NULL) {
@@ -107,6 +109,20 @@ _zip_string_get(zip_string_t *string, zip_uint32_t *lenp, zip_flags_t flags, zip
return string->raw;
}
+bool _zip_string_is_ascii(const zip_string_t *string) {
+ if (string->encoding != ZIP_ENCODING_ASCII) {
+ zip_uint16_t i;
+
+ for (i = 0; i < string->length; i++) {
+ if (string->raw[i] & 0x80) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
zip_uint16_t
_zip_string_length(const zip_string_t *s) {