mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r14635) -Change: use S_ISDIR/S_ISREG as x & S_IFREG always results false on platforms when S_IFREG is 0x0000.
This commit is contained in:
parent
69eb6978e7
commit
bb25748a9d
|
@ -984,12 +984,12 @@ static uint ScanPath(FileScanner *fs, const char *extension, const char *path, s
|
||||||
|
|
||||||
snprintf(filename, lengthof(filename), "%s%s", path, d_name);
|
snprintf(filename, lengthof(filename), "%s%s", path, d_name);
|
||||||
|
|
||||||
if (sb.st_mode & S_IFDIR) {
|
if (S_ISDIR(sb.st_mode)) {
|
||||||
/* Directory */
|
/* Directory */
|
||||||
if (strcmp(d_name, ".") == 0 || strcmp(d_name, "..") == 0) continue;
|
if (strcmp(d_name, ".") == 0 || strcmp(d_name, "..") == 0) continue;
|
||||||
AppendPathSeparator(filename, lengthof(filename));
|
AppendPathSeparator(filename, lengthof(filename));
|
||||||
num += ScanPath(fs, extension, filename, basepath_length);
|
num += ScanPath(fs, extension, filename, basepath_length);
|
||||||
} else if (sb.st_mode & S_IFREG) {
|
} else if (S_ISREG(sb.st_mode)) {
|
||||||
/* File */
|
/* File */
|
||||||
char *ext = strrchr(filename, '.');
|
char *ext = strrchr(filename, '.');
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,11 @@
|
||||||
#undef assert
|
#undef assert
|
||||||
#define assert(expression) if (!(expression)) { SetExceptionString("Assertion failed at %s:%d: %s", __FILE__, __LINE__, #expression); *(byte*)0 = 0; }
|
#define assert(expression) if (!(expression)) { SetExceptionString("Assertion failed at %s:%d: %s", __FILE__, __LINE__, #expression); *(byte*)0 = 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* MSVC doesn't have these :( */
|
||||||
|
#define S_ISDIR(mode) (mode & S_IFDIR)
|
||||||
|
#define S_ISREG(mode) (mode & S_IFREG)
|
||||||
|
|
||||||
#endif /* defined(_MSC_VER) */
|
#endif /* defined(_MSC_VER) */
|
||||||
|
|
||||||
#if defined(WINCE)
|
#if defined(WINCE)
|
||||||
|
|
Loading…
Reference in New Issue