소스 검색

Fix readdir bug (issue #7)

main
PaulStoffregen 10 년 전
부모
커밋
c3d052f680
1개의 변경된 파일8개의 추가작업 그리고 3개의 파일을 삭제
  1. +8
    -3
      SerialFlashDirectory.cpp

+ 8
- 3
SerialFlashDirectory.cpp 파일 보기

@@ -336,6 +336,7 @@ bool SerialFlashChip::readdir(char *filename, uint32_t strsize, uint32_t &filesi
uint32_t maxfiles, index, straddr;
uint32_t i, n;
uint32_t buf[2];
uint16_t hash;
char str[16], *p=filename;

filename[0] = 0;
@@ -343,10 +344,14 @@ bool SerialFlashChip::readdir(char *filename, uint32_t strsize, uint32_t &filesi
if (!maxfiles) return false;
maxfiles &= 0xFFFF;
index = dirindex;
if (index >= maxfiles) return false;
while (1) {
if (index >= maxfiles) return false;
//Serial.printf("readdir, index = %u\n", index);
SerialFlash.read(8 + index * 2, &hash, 2);
if (hash != 0) break;
index++; // skip deleted entries
}
dirindex = index + 1;
//Serial.printf("readdir, index = %u\n", index);

buf[1] = 0;
SerialFlash.read(8 + 4 + maxfiles * 2 + index * 10, buf, 6);
if (buf[0] == 0xFFFFFFFF) return false;

Loading…
취소
저장