diff --git a/osdep/io.h b/osdep/io.h index 7e8a267541..2f04337288 100644 --- a/osdep/io.h +++ b/osdep/io.h @@ -196,6 +196,7 @@ int msync(void *addr, size_t length, int flags); // These are stubs since there is not anything that helps with this on Windows. #define locale_t int #define LC_ALL_MASK 0 +#define LC_CTYPE_MASK 0 locale_t newlocale(int, const char *, locale_t); locale_t uselocale(locale_t); void freelocale(locale_t); diff --git a/stream/stream_libarchive.c b/stream/stream_libarchive.c index e5acad016b..ae06efb890 100644 --- a/stream/stream_libarchive.c +++ b/stream/stream_libarchive.c @@ -244,8 +244,11 @@ struct mp_archive *mp_archive_new(struct mp_log *log, struct stream *src, struct mp_archive *mpa = talloc_zero(NULL, struct mp_archive); mpa->log = log; mpa->locale = newlocale(LC_ALL_MASK, "C.UTF-8", (locale_t)0); - if (!mpa->locale) - goto err; + if (!mpa->locale) { + mpa->locale = newlocale(LC_CTYPE_MASK, "", (locale_t)0); + if (!mpa->locale) + goto err; + } mpa->arch = archive_read_new(); mpa->primary_src = src; if (!mpa->arch)