mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-17 23:45:21 +01:00
FAT code: also look at short file names and not just long names
This commit is contained in:
parent
cc88408dae
commit
fce80b2a67
1 changed files with 13 additions and 4 deletions
|
@ -347,6 +347,17 @@ void DeviceWrapperFatPartition::writeFile(const QString &filename, const QByteAr
|
||||||
updateDirEntry(&entry);
|
updateDirEntry(&entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline QByteArray _dirEntryToShortName(struct dir_entry *entry)
|
||||||
|
{
|
||||||
|
QByteArray base = QByteArray((char *) entry->DIR_Name, 8).trimmed().toLower();
|
||||||
|
QByteArray ext = QByteArray((char *) entry->DIR_Name+8, 3).trimmed().toLower();
|
||||||
|
|
||||||
|
if (ext.isEmpty())
|
||||||
|
return base;
|
||||||
|
else
|
||||||
|
return base+"."+ext;
|
||||||
|
}
|
||||||
|
|
||||||
bool DeviceWrapperFatPartition::getDirEntry(const QString &longFilename, struct dir_entry *entry, bool createIfNotExist)
|
bool DeviceWrapperFatPartition::getDirEntry(const QString &longFilename, struct dir_entry *entry, bool createIfNotExist)
|
||||||
{
|
{
|
||||||
QString filenameRead, longFilenameLower = longFilename.toLower();
|
QString filenameRead, longFilenameLower = longFilename.toLower();
|
||||||
|
@ -375,11 +386,9 @@ bool DeviceWrapperFatPartition::getDirEntry(const QString &longFilename, struct
|
||||||
{
|
{
|
||||||
filenameRead.truncate(filenameRead.indexOf(QChar::Null));
|
filenameRead.truncate(filenameRead.indexOf(QChar::Null));
|
||||||
|
|
||||||
//qDebug() << "Long filename:" << filenameRead << "Short:" << QByteArray(entry->DIR_Name, sizeof(entry->DIR_Name));
|
//qDebug() << "Long filename:" << filenameRead << "DIR_Name:" << QByteArray((char *) entry->DIR_Name, sizeof(entry->DIR_Name)) << "Short:" << _dirEntryToShortName(entry);
|
||||||
|
|
||||||
/* FIXME: should we check short file names as well, if they are not preceeded by long file name entry? */
|
if (filenameRead.toLower() == longFilenameLower || (filenameRead.isEmpty() && _dirEntryToShortName(entry) == longFilenameLower))
|
||||||
|
|
||||||
if (filenameRead.toLower() == longFilenameLower)
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue