diff options
author | bjarni <bjarni@openttd.org> | 2006-03-18 15:55:24 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2006-03-18 15:55:24 +0000 |
commit | 5affa778223ff817634dafd97cc8261ac31de7ec (patch) | |
tree | 240b4d0c38dee55ec5f9f4f31011e3dacf7c8d3e /screenshot.c | |
parent | a137268f136b15b9e39582cddf26d07babeb65e1 (diff) | |
download | openttd-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.c | 12 |
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)); |