From 4afa4476e1fc6b24a96de5df81e009ed40899248 Mon Sep 17 00:00:00 2001 From: dannysmith Date: Thu, 2 Oct 2003 21:29:51 +0000 Subject: [PATCH] * mingwex/dirent.c (_treaddir): Reset errno to 0 if end of directory. --- winsup/mingw/ChangeLog | 5 +++++ winsup/mingw/mingwex/dirent.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 212a47c7be..2ccd1400be 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,8 @@ +2003-10-03 Danny Smith + + * mingwex/dirent.c (_treaddir): Reset errno to 0 if end + of directory. + 2003-09-29 Danny Smith * include/stdlib.h: Guard non-ISO functions with diff --git a/winsup/mingw/mingwex/dirent.c b/winsup/mingw/mingwex/dirent.c index e3c81e1b2b..bef2222cb1 100644 --- a/winsup/mingw/mingwex/dirent.c +++ b/winsup/mingw/mingwex/dirent.c @@ -165,7 +165,12 @@ _treaddir (_TDIR * dirp) /* Get the next search entry. */ if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta))) { - /* We are off the end or otherwise error. */ + /* We are off the end or otherwise error. + _findnext sets errno to ENOENT if no more file + Undo this. */ + DWORD winerr = GetLastError(); + if (winerr == ERROR_NO_MORE_FILES) + errno = 0; _findclose (dirp->dd_handle); dirp->dd_handle = -1; dirp->dd_stat = -1; -- 2.11.0