Handle MAX_PATH every where

This commit is contained in:
2025-01-26 15:54:28 +01:00
parent fc36024eee
commit 0ff2001797
4 changed files with 40 additions and 11 deletions
+8 -6
View File
@@ -519,7 +519,8 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
{
fitsfile *file;
int status = 0;
fits_open_diskfile(&file, _path.toLocal8Bit().data(), READWRITE, &status);
QString path = makeMaxPath(_path);
fits_open_diskfile(&file, path.toLocal8Bit().data(), READWRITE, &status);
int num = 0;
fits_get_num_hdus(file, &num, &status);
if(status)
@@ -642,9 +643,10 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
try
{
LibXISF::XISFModify modifyXISF;
modifyXISF.open(_path.toLocal8Bit().data());
QFileInfo in(_path);
QFileInfo out(_path + "~");
QString in = makeMaxPath(absoluteFilePath());
QString out = in + "~";
modifyXISF.open(in.toLocal8Bit().data());
qDebug() << "modify" << in << out;
for(auto &remove : modify->_remove)
modifyXISF.removeFITSKeyword(0, remove.toStdString());
@@ -655,9 +657,9 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
for(auto &record : modify->_add)
modifyXISF.addFITSKeyword(0, {record.key.toStdString(), record.value.toString().toStdString(), record.comment.toStdString()});
modifyXISF.save(out.absoluteFilePath().toLocal8Bit().toStdString());
modifyXISF.save(out.toLocal8Bit().toStdString());
modifyXISF.close();
std::filesystem::rename(out.filesystemAbsoluteFilePath(), in.filesystemAbsoluteFilePath());
std::filesystem::rename(out.toLocal8Bit().toStdString(), in.toLocal8Bit().toStdString());
return true;
}
catch(std::filesystem::filesystem_error &err)