(svn r8821) -Regression: Unable to browse directories on *nix if the filesystem is not in UTF-8 charset and special characters are used. The string passed to opendir() which is UTF-8 was not parsed back to the filesystem format. Use a wrapper called ttd_opendir() instead of redefining opendir itself.

This commit is contained in:
Darkvater
2007-02-20 00:09:23 +00:00
parent 5b237758aa
commit 92bbe45dd0
5 changed files with 22 additions and 11 deletions

View File

@@ -77,10 +77,21 @@ struct DIR {
bool at_first_entry;
};
DIR *opendir(const char *path);
DIR *opendir(const wchar_t *path);
struct dirent *readdir(DIR *d);
int closedir(DIR *d);
#endif /* defined(WIN32) */
/**
* A wrapper around opendir() which will convert the string from
* OPENTTD encoding to that of the filesystem. For all purposes this
* function behaves the same as the original opendir function
* @param path string to open directory of
* @return DIR pointer
*/
static inline DIR *ttd_opendir(const char *path)
{
return opendir(OTTD2FS(path));
}
#endif /* FIOS_H */