Completed SORT_USES_MORE_RAM implementation

For the MORE_RAM option we need to buffer both the short and long
names, even though long names are sometimes redundant. Worst case, all
the names are max length. We can save some RAM by not storing these. We
could save more RAM by only storing the visible part of the long name.
master
Scott Lahteine 10 years ago
parent c9486ebb85
commit a12eec33e2

@ -54,7 +54,7 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
dir_t p; dir_t p;
uint8_t cnt=0; uint8_t cnt=0;
while (parent.readDir(p, longFilename) > 0) while (parent.readDir(p, diveFilename) > 0)
{ {
if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint
{ {
@ -91,8 +91,8 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
{ {
if (p.name[0] == DIR_NAME_FREE) break; if (p.name[0] == DIR_NAME_FREE) break;
if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.'|| p.name[0] == '_') continue; if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.'|| p.name[0] == '_') continue;
if (longFilename[0] != '\0' && if (diveFilename[0] != '\0' &&
(longFilename[0] == '.' || longFilename[0] == '_')) continue; (diveFilename[0] == '.' || diveFilename[0] == '_')) continue;
if ( p.name[0] == '.') if ( p.name[0] == '.')
{ {
if ( p.name[1] != '.') if ( p.name[1] != '.')

Loading…
Cancel
Save