From 79edc5aa122fae3ab176c5f25284ee3ed37af12c Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 24 Jul 2025 22:58:55 +0200 Subject: [PATCH] MDS: Use iconv instead of wcstombs() on non-Windows platforms. --- src/cdrom/cdrom_image.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/cdrom/cdrom_image.c b/src/cdrom/cdrom_image.c index 442022432..2fe49a310 100644 --- a/src/cdrom/cdrom_image.c +++ b/src/cdrom/cdrom_image.c @@ -29,6 +29,7 @@ #include #include #ifndef _WIN32 +# include # include #endif #include <86box/86box.h> @@ -1993,7 +1994,15 @@ image_load_mds(cd_image_t *img, const char *mdsfile) if (wfn[i] == 0x0000) break; } +#ifdef _WIN32 wcstombs(fn, wfn, 256); +#else + int src_len = 256; + int dst_len = 512; + iconv_t conv = iconv_open("UTF-8", "UTF-16"); + iconv(conv, (char *) wfn, &src_len, fn, &dst_len); + iconv_close(conv); +#endif } else for (int i = 0; i < 512; i++) { fread(&fn[i], 1, 1, fp); if (fn[i] == 0x00)