summaryrefslogtreecommitdiff
path: root/screenshot.c
diff options
context:
space:
mode:
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));