2001-09-10 Earnie Boyd <earnie@SF.net>

* dossh: Remove inadvertantly imported file.

2001-09-10  Danny Smith  <dannysmith@users.sourceforge.net>

	* dirent.c (opendir): Use GetFileAttributes rather than stat
	to determine if input arg is dir.
This commit is contained in:
Earnie Boyd 2001-09-10 15:41:46 +00:00
parent f3acbe3e3f
commit 34ed8fcee6
2 changed files with 23 additions and 11 deletions

View File

@ -1,3 +1,12 @@
2001-09-10 Earnie Boyd <earnie@SF.net>
* dossh: Remove inadvertantly imported file.
2001-09-10 Danny Smith <dannysmith@users.sourceforge.net>
* dirent.c (opendir): Use GetFileAttributes rather than stat
to determine if input arg is dir.
2001-08-29 Danny Smith <dannysmith@users.sourceforge.net>
* include/stdarg.h (va_list): Typedef as __builtin_va_list if

View File

@ -8,7 +8,7 @@
* Updated by Jeremy Bettis <jeremy@hksys.com>
* Significantly revised and rewinddir, seekdir and telldir added by Colin
* Peters <colin@fu.is.saga-u.ac.jp>
*
*
* $Revision$
* $Author$
* $Date$
@ -20,10 +20,12 @@
#include <string.h>
#include <io.h>
#include <direct.h>
#include <sys/stat.h>
#include <dirent.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h> /* for GetFileAttributes */
#define SUFFIX "*"
#define SLASH "\\"
@ -33,12 +35,12 @@
* Returns a pointer to a DIR structure appropriately filled in to begin
* searching a directory.
*/
DIR *
DIR *
opendir (const char *szPath)
{
DIR *nd;
struct _stat statDir;
unsigned int rc;
errno = 0;
if (!szPath)
@ -54,15 +56,16 @@ opendir (const char *szPath)
}
/* Attempt to determine if the given path really is a directory. */
if (_stat (szPath, &statDir))
rc = GetFileAttributes(szPath);
if (rc == -1)
{
/* Error, stat should have set an error value. */
/* call GetLastError for more error info */
errno = ENOENT;
return (DIR *) 0;
}
if (!S_ISDIR (statDir.st_mode))
if (!(rc & FILE_ATTRIBUTE_DIRECTORY))
{
/* Error, stat reports not a directory. */
/* Error, entry exists but not a directory. */
errno = ENOTDIR;
return (DIR *) 0;
}
@ -149,7 +152,7 @@ readdir (DIR * dirp)
/* Start the search */
dirp->dd_handle = _findfirst (dirp->dd_name, &(dirp->dd_dta));
if (dirp->dd_handle == -1)
if (dirp->dd_handle == -1)
{
/* Whoops! Seems there are no files in that
* directory. */