Skip to content

Commit 41d8e42

Browse files
committed
Fix FatFile::printName() bug
1 parent 3b79f38 commit 41d8e42

File tree

6 files changed

+15
-18
lines changed

6 files changed

+15
-18
lines changed

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=SdFat
2-
version=1.1.0
2+
version=1.1.1
33
license=MIT
44
author=Bill Greiman <fat16lib@sbcglobal.net>
55
maintainer=Bill Greiman <fat16lib@sbcglobal.net>

src/FatLib/FatFileLFN.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -502,9 +502,11 @@ bool FatFile::open(FatFile* dirFile, fname_t* fname, oflag_t oflag) {
502502
//------------------------------------------------------------------------------
503503
size_t FatFile::printName(print_t* pr) {
504504
FatFile dirFile;
505-
uint16_t u;
506-
size_t n = 0;
507505
ldir_t* ldir;
506+
size_t n = 0;
507+
uint16_t u;
508+
uint8_t buf[13];
509+
uint8_t i;
508510

509511
if (!isLFN()) {
510512
return printSFN(pr);
@@ -523,29 +525,24 @@ size_t FatFile::printName(print_t* pr) {
523525
DBG_FAIL_MACRO;
524526
goto fail;
525527
}
528+
526529
if (ldir->attr != DIR_ATT_LONG_NAME ||
527530
ord != (ldir->ord & 0X1F)) {
528531
DBG_FAIL_MACRO;
529532
goto fail;
530533
}
531-
for (uint8_t i = 0; i < 13; i++) {
534+
for (i = 0; i < 13; i++) {
532535
u = lfnGetChar(ldir, i);
533536
if (u == 0) {
534537
// End of name.
535538
break;
536539
}
537-
if (u > 0X7E) {
538-
u = '?';
539-
}
540-
pr->write(static_cast<char>(u));
540+
buf[i] = u < 0X7F ? u : '?';
541541
n++;
542542
}
543-
if (ldir->ord & LDIR_ORD_LAST_LONG_ENTRY) {
544-
return n;
545-
}
543+
pr->write(buf, i);
546544
}
547-
// Fall into fail;
548-
DBG_FAIL_MACRO;
545+
return n;
549546

550547
fail:
551548
return 0;

src/FatLib/FatVolume.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ bool FatVolume::fatPut(uint32_t cluster, uint32_t value) {
357357
//------------------------------------------------------------------------------
358358
// free a cluster chain
359359
bool FatVolume::freeChain(uint32_t cluster) {
360-
uint32_t next;
360+
uint32_t next = 0;
361361
int8_t fg;
362362
do {
363363
fg = fatGet(cluster, &next);

src/SdFat.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
#include "sdios.h"
3737
#endif // INCLUDE_SDIOS
3838
//------------------------------------------------------------------------------
39-
/** SdFat version 1.1.0 */
40-
#define SD_FAT_VERSION 10100
39+
/** SdFat version 1.1.1 */
40+
#define SD_FAT_VERSION 10101
4141
//==============================================================================
4242
/**
4343
* \class SdBaseFile

src/SdFatConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
#endif
146146
//------------------------------------------------------------------------------
147147
/**
148-
* Set FAT12_SUPPORT nonzero to enable use if FAT12 volumes.
148+
* Set FAT12_SUPPORT nonzero to enable use of FAT12 volumes.
149149
* FAT12 has not been well tested and requires additional flash.
150150
*/
151151
#define FAT12_SUPPORT 0

src/SpiDriver/SdSpiTeensy3.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#include "SdSpiDriver.h"
2626
#if defined(__arm__) && defined(CORE_TEENSY)
2727
// SPI definitions
28-
#include "kinetis.h"
28+
// #include "kinetis.h"
2929

3030
//------------------------------------------------------------------------------
3131
void SdSpiAltDriver::activate() {

0 commit comments

Comments
 (0)