From b743c72a040733a2ea2846af6b92c225d7c93246 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 22 Dec 2021 14:21:21 +0100 Subject: [PATCH] fix problem with copying of new adblock js --- src/librssguard/miscellaneous/iofactory.cpp | 17 +++++++++++++++-- src/librssguard/miscellaneous/iofactory.h | 5 ++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/librssguard/miscellaneous/iofactory.cpp b/src/librssguard/miscellaneous/iofactory.cpp index d8a144ac4..34fe0211e 100644 --- a/src/librssguard/miscellaneous/iofactory.cpp +++ b/src/librssguard/miscellaneous/iofactory.cpp @@ -93,13 +93,18 @@ bool IOFactory::startProcessDetached(const QString& program, const QStringList& return process.startDetached(nullptr); } -QString IOFactory::startProcessGetOutput(const QString& executable, const QStringList& arguments) { +QString IOFactory::startProcessGetOutput(const QString& executable, + const QStringList& arguments, + const QProcessEnvironment& pe) { QProcess proc; proc.setProgram(executable); proc.setArguments(arguments); - proc.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); + QProcessEnvironment system_pe = QProcessEnvironment::systemEnvironment(); + + system_pe.insert(pe); + proc.setProcessEnvironment(system_pe); proc.start(); if (proc.waitForFinished() && @@ -142,6 +147,14 @@ void IOFactory::writeFile(const QString& file_path, const QByteArray& data) { bool IOFactory::copyFile(const QString& source, const QString& destination) { if (QFile::exists(destination)) { + QFile file(destination); + + file.setPermissions(file.permissions() | + QFileDevice::WriteOwner | + QFileDevice::WriteUser | + QFileDevice::WriteGroup | + QFileDevice::WriteOther); + if (!QFile::remove(destination)) { return false; } diff --git a/src/librssguard/miscellaneous/iofactory.h b/src/librssguard/miscellaneous/iofactory.h index 27ecb29b7..06f2cd020 100644 --- a/src/librssguard/miscellaneous/iofactory.h +++ b/src/librssguard/miscellaneous/iofactory.h @@ -7,6 +7,7 @@ #include "definitions/definitions.h" +#include #include class IOFactory { @@ -31,7 +32,9 @@ class IOFactory { const QStringList& arguments, const QString& native_arguments = {}, const QString& working_directory = {}); - static QString startProcessGetOutput(const QString& executable, const QStringList& arguments = {}); + static QString startProcessGetOutput(const QString& executable, + const QStringList& arguments = {}, + const QProcessEnvironment& pe = {}); // Returns contents of a file. // Throws exception when no such file exists.