Support any character encoding
Some checks failed
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_BZIP=OFF, ubuntu_clang_no_bzip2, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Bzip2, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_COMPRESS_ONLY=ON, ubuntu_clang_compress_only, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang Compress Only, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_DECOMPRESS_ONLY=ON, ubuntu_clang_decompress_only, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang Decompress Only, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_FORCE_FETCH_LIBS=ON -G Ninja, windows_gcc, gcc, g++, Windows GCC Code Coverage, windows-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_LIBCOMP=ON, macos_xcode_libcompression, macOS Xcode LibCompression, macOS-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_LZMA=OFF, ubuntu_clang_no_lzma, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No LZMA, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_OPENSSL=ON, macos_xcode_openssl, macOS Xcode OpenSSL, macos-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_OPENSSL=ON, ubuntu_clang_openssl, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang OpenSSL, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_PKCRYPT=OFF -D MZ_WZAES=OFF, ubuntu_clang_no_encryption, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Encryption, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_PKCRYPT=OFF, ubuntu_clang_no_pkcrypt, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Pkcrypt, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_WZAES=OFF, ubuntu_clang_no_winzip_aes, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Winzip AES, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_ZLIB=OFF, ubuntu_clang_no_zlib, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Zlib, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON -D MZ_ZSTD=OFF, ubuntu_clang_no_zstd, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang No Zstd, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON, macos_xcode, macOS Xcode Code Coverage, macOS-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON, ubuntu_clang, clang-14, clang++-14, llvm-cov-14 gcov, Ubuntu Clang, ubuntu-latest, clang-14 llvm-14) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_CODE_COVERAGE=ON, ubuntu_gcc, gcc, g++, Ubuntu GCC, ubuntu-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_FORCE_FETCH_LIBS=ON, cl, true, windows, Windows MSVC, windows-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_SANITIZER=Address, ubuntu_gcc_asan, gcc, g++, Ubuntu GCC ASAN, ubuntu-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_SANITIZER=Memory, ubuntu_gcc_msan, gcc, g++, Ubuntu GCC MSAN, ubuntu-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (-D MZ_SANITIZER=Undefined, ubuntu_gcc_undefined, gcc, g++, Ubuntu GCC UBSAN, ubuntu-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (../build, ../minizip-ng, gcc, g++, Ubuntu GCC OSB, ubuntu-latest) (push) Has been cancelled
Build / ${{ matrix.name }} (clang, clang++, true, linux, Ubuntu 22 Clang, ubuntu-22.04) (push) Has been cancelled
Build / ${{ matrix.name }} (clang-11, clang++-11, Ubuntu 22 Clang 11, ubuntu-22.04, llvm-11 clang-11, 11) (push) Has been cancelled
Build / ${{ matrix.name }} (gcc, g++, Ubuntu 22 GCC, ubuntu-22.04) (push) Has been cancelled
Build / ${{ matrix.name }} (true, macos, macOS Xcode, macos-latest) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled

This commit is contained in:
Cœur 2025-05-01 17:11:50 +02:00 committed by Nathan Moinvaziri
parent 10646f0da6
commit 4b770114a0

View File

@ -53,21 +53,17 @@ char *mz_os_utf8_string_create(const char *string, int32_t encoding) {
char *string_utf8 = NULL;
char *string_utf8_ptr = NULL;
if (!string)
if (!string || encoding <= 0)
return NULL;
if (encoding == MZ_ENCODING_CODEPAGE_437)
from_encoding = "CP437";
else if (encoding == MZ_ENCODING_CODEPAGE_932)
from_encoding = "CP932";
else if (encoding == MZ_ENCODING_CODEPAGE_936)
from_encoding = "CP936";
else if (encoding == MZ_ENCODING_CODEPAGE_950)
from_encoding = "CP950";
else if (encoding == MZ_ENCODING_UTF8)
if (encoding == MZ_ENCODING_UTF8)
from_encoding = "UTF-8";
else
return NULL;
else {
/// up to CP2147483647
char string_encoding[13];
snprintf(string_encoding, sizeof(string_encoding), "CP%03" PRId32, encoding);
from_encoding = string_encoding;
}
cd = iconv_open("UTF-8", from_encoding);
if (cd == (iconv_t)-1)