summaryrefslogtreecommitdiff
path: root/fatfs/source/ff.c
diff options
context:
space:
mode:
Diffstat (limited to 'fatfs/source/ff.c')
-rw-r--r--fatfs/source/ff.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fatfs/source/ff.c b/fatfs/source/ff.c
index a114c6b..c57a320 100644
--- a/fatfs/source/ff.c
+++ b/fatfs/source/ff.c
@@ -1728,7 +1728,8 @@ static FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DEN
ofs = dp->dptr + SZDIRE; /* Next entry */
- if (dp->sect == 0 || ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) return FR_NO_FILE; /* Report EOT when offset has reached max value */
+ if (ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) dp->sect = 0; /* Disable it if the offset reached the max value */
+ if (dp->sect == 0) return FR_NO_FILE; /* Report EOT if it has been disabled */
if (ofs % SS(fs) == 0) { /* Sector changed? */
dp->sect++; /* Next sector */