Browse Source

✏️ Fix getLFNName parameter (#23752)

FB4S_WIFI
GHGiampy 3 years ago
committed by Scott Lahteine
parent
commit
c0f6d2f78c
  1. 4
      Marlin/src/sd/SdBaseFile.cpp

4
Marlin/src/sd/SdBaseFile.cpp

@ -1140,8 +1140,8 @@ bool SdBaseFile::openNext(SdBaseFile *dirFile, uint8_t oflag) {
// We can't reconvert to UTF-8 here as UTF-8 is variable-size encoding, but joining LFN blocks // We can't reconvert to UTF-8 here as UTF-8 is variable-size encoding, but joining LFN blocks
// needs static bytes addressing. So here just store full UTF-16LE words to re-convert later. // needs static bytes addressing. So here just store full UTF-16LE words to re-convert later.
uint16_t idx = (startOffset + i) * 2; // This is fixed as FAT LFN always contain UTF-16LE encoding uint16_t idx = (startOffset + i) * 2; // This is fixed as FAT LFN always contain UTF-16LE encoding
longFilename[idx] = utf16_ch & 0xFF; lname[idx] = utf16_ch & 0xFF;
longFilename[idx + 1] = (utf16_ch >> 8) & 0xFF; lname[idx + 1] = (utf16_ch >> 8) & 0xFF;
#else #else
// Replace all multibyte characters to '_' // Replace all multibyte characters to '_'
lname[startOffset + i] = (utf16_ch > 0xFF) ? '_' : (utf16_ch & 0xFF); lname[startOffset + i] = (utf16_ch > 0xFF) ? '_' : (utf16_ch & 0xFF);

Loading…
Cancel
Save