diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..457a0be6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "tools/font8x8"] + path = tools/font8x8 + url = https://github.com/dhepper/font8x8 +[submodule "tools/8x8fonts/font8x8"] + path = tools/8x8fonts/font8x8 + url = https://github.com/dhepper/font8x8 diff --git a/src/factory.c b/src/factory.c index 6a88bce0..babc3742 100644 --- a/src/factory.c +++ b/src/factory.c @@ -1986,11 +1986,47 @@ int L_FinalizePicture(lua_State* L) int L_GetFileName(lua_State* L) { int nb_args=lua_gettop(L); - + LUA_ARG_LIMIT (0, "getfilename"); - + +#if defined(WIN32) + if (Main.backups->Pages->Filename_unicode == NULL || Main.backups->Pages->Filename_unicode[0] == 0) + lua_pushstring(L, Main.backups->Pages->Filename); + else + { + // convert Filename_unicode to UTF8 (Lua strings are 8bits) + size_t unicode_len = Unicode_strlen(Main.backups->Pages->Filename_unicode); + int len = WideCharToMultiByte(CP_UTF8, 0, Main.backups->Pages->Filename_unicode, unicode_len, NULL, 0, NULL, NULL); + if (len <= 0) + { + GFX2_Log(GFX2_WARNING, "WideCharToMultiByte() failed\n"); + lua_pushstring(L, Main.backups->Pages->Filename); + } + else + { + char * utf8name = (char *)GFX2_malloc(len); + if (utf8name == NULL) + lua_pushstring(L, Main.backups->Pages->Filename); + else + { + if (WideCharToMultiByte(CP_UTF8, 0, Main.backups->Pages->Filename_unicode, unicode_len, utf8name, len, NULL, NULL) > 0) + lua_pushlstring(L, utf8name, len); + else + { + DWORD error = GetLastError(); + GFX2_Log(GFX2_WARNING, "WideCharToMultiByte() failed error=%u\n", error); + lua_pushstring(L, Main.backups->Pages->Filename); + } + free(utf8name); + } + } + } + // still using the "short name" directory path at the moment + lua_pushstring(L, Main.backups->Pages->File_directory); +#else lua_pushstring(L, Main.backups->Pages->Filename); lua_pushstring(L, Main.backups->Pages->File_directory); +#endif return 2; } diff --git a/tools/8x8fonts/font8x8 b/tools/8x8fonts/font8x8 new file mode 160000 index 00000000..592f4119 --- /dev/null +++ b/tools/8x8fonts/font8x8 @@ -0,0 +1 @@ +Subproject commit 592f4119ee38ccfdf61d8c8c0e41a48d2d370324