(svn r2321) - Fix: [ 1202286 ] On OS/2 you get a double backslash in your filename after browsing to the root dir of a drive and "." and ".." are incorrectly displayed. (orudge)

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
matthijs 19 years ago
parent 2151550631
commit 89587c1d51

10
os2.c

@ -114,8 +114,8 @@ FiosItem *FiosGetSavegameList(int *num, int mode)
while ((dirent = readdir(dir)) != NULL) { while ((dirent = readdir(dir)) != NULL) {
append_path(filename, _fios_path, dirent->d_name); append_path(filename, _fios_path, dirent->d_name);
if (!stat(filename, &sb) && S_ISDIR(sb.st_mode) && if (!stat(filename, &sb) && S_ISDIR(sb.st_mode) &&
strcmp(filename, ".") != 0 && strcmp(dirent->d_name, ".") != 0 &&
strcmp(filename, "..") != 0) { strcmp(dirent->d_name, "..") != 0) {
fios = FiosAlloc(); fios = FiosAlloc();
fios->type = FIOS_TYPE_DIR; fios->type = FIOS_TYPE_DIR;
fios->mtime = 0; fios->mtime = 0;
@ -243,8 +243,8 @@ FiosItem *FiosGetScenarioList(int *num, int mode)
while ((dirent = readdir(dir)) != NULL) { while ((dirent = readdir(dir)) != NULL) {
append_path(filename, _fios_path, dirent->d_name); append_path(filename, _fios_path, dirent->d_name);
if (!stat(filename, &sb) && S_ISDIR(sb.st_mode) && if (!stat(filename, &sb) && S_ISDIR(sb.st_mode) &&
strcmp(filename, ".") != 0 && strcmp(dirent->d_name, ".") != 0 &&
strcmp(filename, "..") != 0) { strcmp(dirent->d_name, "..") != 0) {
fios = FiosAlloc(); fios = FiosAlloc();
fios->type = FIOS_TYPE_DIR; fios->type = FIOS_TYPE_DIR;
fios->mtime = 0; fios->mtime = 0;
@ -357,7 +357,7 @@ char *FiosBrowseTo(const FiosItem *item)
case FIOS_TYPE_DIR: case FIOS_TYPE_DIR:
s = strchr(item->name, '\\'); s = strchr(item->name, '\\');
if (s != NULL) *s = '\0'; if (s != NULL) *s = '\0';
strcat(path, "\\"); if (path[3]!= '\0' ) strcat(path, "\\");
strcat(path, item->name); strcat(path, item->name);
break; break;

Loading…
Cancel
Save