mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-08 23:19:40 +00:00
(svn r3972) changed r3966 to only affect OSX. Too bad linuxes with utf-8 filesystems now got the saving problem again, but now we can compile on all platforms again
This commit is contained in:
parent
31e1c4fe49
commit
1c7d139171
@ -1314,11 +1314,11 @@ extern bool AfterLoadGame(void);
|
|||||||
extern void BeforeSaveGame(void);
|
extern void BeforeSaveGame(void);
|
||||||
extern bool LoadOldSaveGame(const char *file);
|
extern bool LoadOldSaveGame(const char *file);
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef __APPLE__
|
||||||
extern const char *convert_to_fs_charset(const char *filename);
|
extern const char *convert_to_fs_charset(const char *filename);
|
||||||
#else
|
#else
|
||||||
#define convert_to_fs_charset(str) (str)
|
#define convert_to_fs_charset(str) (str)
|
||||||
#endif // UNIX
|
#endif
|
||||||
|
|
||||||
/** Small helper function to close the to be loaded savegame an signal error */
|
/** Small helper function to close the to be loaded savegame an signal error */
|
||||||
static inline SaveOrLoadResult AbortSaveLoad(void)
|
static inline SaveOrLoadResult AbortSaveLoad(void)
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef __APPLE__
|
||||||
extern const char *convert_to_fs_charset(const char *filename);
|
extern const char *convert_to_fs_charset(const char *filename);
|
||||||
#else
|
#else
|
||||||
#define convert_to_fs_charset(str) (str)
|
#define convert_to_fs_charset(str) (str)
|
||||||
#endif // UNIX
|
#endif
|
||||||
|
|
||||||
char _screenshot_format_name[8];
|
char _screenshot_format_name[8];
|
||||||
uint _num_screenshot_formats;
|
uint _num_screenshot_formats;
|
||||||
|
25
unix.c
25
unix.c
@ -43,14 +43,13 @@ ULONG __stack = (1024*1024)*2; // maybe not that much is needed actually ;)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
|
#include <iconv.h>
|
||||||
|
#include <locale.h>
|
||||||
#if defined(WITH_SDL)
|
#if defined(WITH_SDL)
|
||||||
//the mac implementation needs this file included in the same file as main()
|
//the mac implementation needs this file included in the same file as main()
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <iconv.h>
|
|
||||||
#include <locale.h>
|
|
||||||
static char *_fios_path;
|
static char *_fios_path;
|
||||||
static char *_fios_save_path;
|
static char *_fios_save_path;
|
||||||
static char *_fios_scn_path;
|
static char *_fios_scn_path;
|
||||||
@ -607,22 +606,7 @@ void CSleep(int milliseconds)
|
|||||||
#endif // __AMIGA__
|
#endif // __AMIGA__
|
||||||
}
|
}
|
||||||
|
|
||||||
bool guessUTF8(void)
|
#ifdef __APPLE__
|
||||||
{
|
|
||||||
#if defined(__linux__)
|
|
||||||
const char *lang = getenv("LANG");
|
|
||||||
if(lang != NULL && strstr(lang, "UTF-8") != NULL)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FYI: This is not thread-safe.
|
/* FYI: This is not thread-safe.
|
||||||
Assumptions:
|
Assumptions:
|
||||||
- the 'from' charset is ISO-8859-15
|
- the 'from' charset is ISO-8859-15
|
||||||
@ -640,8 +624,6 @@ const char *convert_to_fs_charset(const char *filename)
|
|||||||
if(inbuf == NULL)
|
if(inbuf == NULL)
|
||||||
inbuf = statin;
|
inbuf = statin;
|
||||||
|
|
||||||
if(guessUTF8() == false)
|
|
||||||
return filename;
|
|
||||||
setlocale(LC_ALL, "C-UTF-8");
|
setlocale(LC_ALL, "C-UTF-8");
|
||||||
strcpy(statout, filename);
|
strcpy(statout, filename);
|
||||||
strcpy(statin, filename);
|
strcpy(statin, filename);
|
||||||
@ -659,3 +641,4 @@ const char *convert_to_fs_charset(const char *filename)
|
|||||||
// FIX: invalid characters will abort conversion, but they shouldn't occur?
|
// FIX: invalid characters will abort conversion, but they shouldn't occur?
|
||||||
return statout;
|
return statout;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user