foxygit / doom Log in
commit db56db1e799867bd78bd8716a0680322f42fe72a
Author:     ceski <56656010+ceski-1@users.noreply.github.com>
AuthorDate: Tue May 16 10:15:09 2023 -0700
Commit:     ceski <56656010+ceski-1@users.noreply.github.com>
CommitDate: Tue May 16 10:15:09 2023 -0700

    Expose `M_ConvertWideToUtf8()`
---
 src/m_misc.c | 9 ++++++---
 src/m_misc.h | 1 +
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/m_misc.c b/src/m_misc.c
index b3004c23..ace206d4 100644
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -114,7 +114,10 @@ static char *ConvertWideToMultiByte(const wchar_t *wstr, UINT code_page)
     return str;
 }

-static char *ConvertWideToUtf8(const wchar_t *wstr)
+// Convert wide string to a UTF8 string. The result is newly allocated and must
+// be freed by the caller after use.
+
+char *M_ConvertWideToUtf8(const wchar_t *wstr)
 {
     return ConvertWideToMultiByte(wstr, CP_UTF8);
 }
@@ -154,7 +157,7 @@ char *M_ConvertSysNativeMBToUtf8(const char *str)
         return NULL;
     }

-    ret = ConvertWideToUtf8(wstr);
+    ret = M_ConvertWideToUtf8(wstr);

     free(wstr);

@@ -346,7 +349,7 @@ char *M_getenv(const char *name)

     if (wenv)
     {
-        env = ConvertWideToUtf8(wenv);
+        env = M_ConvertWideToUtf8(wenv);
     }
     else
     {
diff --git a/src/m_misc.h b/src/m_misc.h
index 50607e1d..5f16cc60 100644
--- a/src/m_misc.h
+++ b/src/m_misc.h
@@ -28,6 +28,7 @@

 #ifdef _WIN32
 wchar_t *M_ConvertUtf8ToWide(const char *str);
+char *M_ConvertWideToUtf8(const wchar_t *wstr);
 #endif
 char *M_ConvertUtf8ToSysNativeMB(const char *str);
 char *M_ConvertSysNativeMBToUtf8(const char *str);