summaryrefslogtreecommitdiff
path: root/screenshot.c
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2006-03-18 15:55:24 +0000
committerbjarni <bjarni@openttd.org>2006-03-18 15:55:24 +0000
commit5affa778223ff817634dafd97cc8261ac31de7ec (patch)
tree240b4d0c38dee55ec5f9f4f31011e3dacf7c8d3e /screenshot.c
parenta137268f136b15b9e39582cddf26d07babeb65e1 (diff)
downloadopenttd-5affa778223ff817634dafd97cc8261ac31de7ec.tar.xz
(svn r3966) -Fix: [OSX and some linux] [ 1157244 ] Can't save game if name contains german umlauts
now it saves correctly, but the load window still display some chars wrong (fix by ln-)
Diffstat (limited to 'screenshot.c')
-rw-r--r--screenshot.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/screenshot.c b/screenshot.c
index ad32f20c1..597bf5d45 100644
--- a/screenshot.c
+++ b/screenshot.c
@@ -12,6 +12,12 @@
#include "screenshot.h"
#include "variables.h"
+#ifdef UNIX
+extern const char *convert_to_fs_charset(const char *filename);
+#else
+#define convert_to_fs_charset(str) (str)
+#endif // UNIX
+
char _screenshot_format_name[8];
uint _num_screenshot_formats;
uint _cur_screenshot_format;
@@ -73,7 +79,7 @@ static bool MakeBmpImage(const char *name, ScreenshotCallback *callb, void *user
if (pixelformat != 8)
return false;
- f = fopen(name, "wb");
+ f = fopen(convert_to_fs_charset(name), "wb");
if (f == NULL) return false;
// each scanline must be aligned on a 32bit boundary
@@ -177,7 +183,7 @@ static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *user
if (pixelformat != 8)
return false;
- f = fopen(name, "wb");
+ f = fopen(convert_to_fs_charset(name), "wb");
if (f == NULL) return false;
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, (char *)name, png_my_error, png_my_warning);
@@ -288,7 +294,7 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user
if (pixelformat != 8 || w == 0)
return false;
- f = fopen(name, "wb");
+ f = fopen(convert_to_fs_charset(name), "wb");
if (f == NULL) return false;
memset(&pcx, 0, sizeof(pcx));