QFile->QTemporaryFile.

This commit is contained in:
Andrius Štikonas 2017-12-08 18:56:34 +00:00
parent 47429dd1bf
commit d2f13ff4cc
1 changed files with 7 additions and 7 deletions

View File

@ -23,9 +23,9 @@
#include <QChar> #include <QChar>
#include <QDebug> #include <QDebug>
#include <QFile>
#include <QFileInfo> #include <QFileInfo>
#include <QRegularExpression> #include <QRegularExpression>
#include <QTemporaryFile>
#include <QTextStream> #include <QTextStream>
static void parseFsSpec(const QString& m_fsSpec, FstabEntryType& m_entryType, QString& m_deviceNode); static void parseFsSpec(const QString& m_fsSpec, FstabEntryType& m_entryType, QString& m_deviceNode);
@ -180,11 +180,11 @@ static void writeEntry(QFile& output, const FstabEntry& entry)
bool writeMountpoints(const FstabEntryList fstabEntries, const QString& filename) bool writeMountpoints(const FstabEntryList fstabEntries, const QString& filename)
{ {
bool rval = true; bool rval = true;
const QString newFilename = QStringLiteral("%1.new").arg(filename); QTemporaryFile out;
QFile out(newFilename); out.setAutoRemove(false);
if (!out.open(QFile::ReadWrite | QFile::Truncate)) { if (!out.open()) {
qWarning() << "could not open output file " << newFilename; qWarning() << "could not open output file " << out.fileName();
rval = false; rval = false;
} else { } else {
for (const auto &e : fstabEntries) for (const auto &e : fstabEntries)
@ -200,8 +200,8 @@ bool writeMountpoints(const FstabEntryList fstabEntries, const QString& filename
rval = false; rval = false;
} }
if (rval && !QFile::rename(newFilename, filename)) { if (rval && !QFile::rename(out.fileName(), filename)) {
qWarning() << "could not rename " << newFilename << " to " << filename; qWarning() << "could not rename " << out.fileName() << " to " << filename;
rval = false; rval = false;
} }
} }