Jelajahi Sumber

LibC: Implement a very naive mbtowc()

This just copies the short char into the wide char without any decoding
whatsoever. A proper implementation should look at the current LC_CTYPE
and implement multi-byte decoding.
Andreas Kling 5 tahun lalu
induk
melakukan
4f27745136
1 mengubah file dengan 14 tambahan dan 2 penghapusan
  1. 14 2
      Libraries/LibC/stdlib.cpp

+ 14 - 2
Libraries/LibC/stdlib.cpp

@@ -447,9 +447,21 @@ size_t mbstowcs(wchar_t*, const char*, size_t)
     ASSERT_NOT_REACHED();
 }
 
-size_t mbtowc(wchar_t*, const char*, size_t)
+size_t mbtowc(wchar_t* wch, const char* data, size_t data_size)
 {
-    ASSERT_NOT_REACHED();
+    // FIXME: This needs a real implementation.
+    UNUSED_PARAM(data_size);
+
+    if (wch && data) {
+        *wch = *data;
+        return 1;
+    }
+
+    if (!wch && data) {
+        return 1;
+    }
+
+    return 0;
 }
 
 int wctomb(char*, wchar_t)