No longer change dir when doing directory searches.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@542
This commit is contained in:
parent
079ea0f1cd
commit
943b4e81d3
1 changed files with 4 additions and 6 deletions
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
|
||||
#include "dirent.h"
|
||||
#include "io.h"
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
|
@ -22,17 +23,14 @@ DIR * opendir(const char *dirname) {
|
|||
|
||||
/* Stash the directory name */
|
||||
strcpy(dir.pathName,dirname);
|
||||
strcat(dir.pathName,"*.*");
|
||||
|
||||
/* set the handle to invalid and set the firstTime flag */
|
||||
dir.handle = INVALID_HANDLE_VALUE;
|
||||
dir.firstTime = TRUE;
|
||||
|
||||
if (strcmp(dirname, ".") == 0) {
|
||||
return &dir;
|
||||
}
|
||||
|
||||
/* Change the current directory to the one requested */
|
||||
return (SetCurrentDirectory(dir.pathName) != 0) ? &dir : NULL;
|
||||
return (access(dirname,0) ? NULL : &dir);
|
||||
}
|
||||
|
||||
/** Close the current directory - return 0 if success */
|
||||
|
@ -60,7 +58,7 @@ struct dirent * readdir(DIR *dirp) {
|
|||
if (TRUE == dirp->firstTime)
|
||||
{
|
||||
/** Get the first entry in the directory */
|
||||
dirp->handle = FindFirstFile("*.*", &dirp->findFileData);
|
||||
dirp->handle = FindFirstFile(dirp->pathName, &dirp->findFileData);
|
||||
dirp->firstTime = FALSE;
|
||||
if (INVALID_HANDLE_VALUE == dirp->handle)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue