Provide access to un-joined argument list in Core::Launcher

This allows to re-use the variable in Linux-specific code
This commit is contained in:
Ilya Fedin 2023-06-13 06:03:19 +04:00 committed by John Preston
parent a7bd097b2f
commit af00247362
5 changed files with 9 additions and 13 deletions

View File

@ -290,6 +290,7 @@ std::unique_ptr<Launcher> Launcher::Create(int argc, char *argv[]) {
Launcher::Launcher(int argc, char *argv[])
: _argc(argc)
, _argv(argv)
, _arguments(readArguments(_argc, _argv))
, _baseIntegration(_argc, _argv) {
crl::toggle_fp_exceptions(true);
@ -301,8 +302,6 @@ Launcher::~Launcher() {
}
void Launcher::init() {
_arguments = readArguments(_argc, _argv);
prepareSettings();
initQtMessageLogging();
@ -431,8 +430,8 @@ QStringList Launcher::readArguments(int argc, char *argv[]) const {
return result;
}
QString Launcher::argumentsString() const {
return _arguments.join(' ');
const QStringList &Launcher::arguments() const {
return _arguments;
}
bool Launcher::customWorkingDir() const {

View File

@ -28,7 +28,7 @@ public:
virtual int exec();
QString argumentsString() const;
const QStringList &arguments() const;
bool customWorkingDir() const;
uint64 installationTag() const;

View File

@ -430,7 +430,7 @@ void start(not_null<Core::Launcher*> launcher) {
LOG(("Executable dir: %1, name: %2").arg(cExeDir(), cExeName()));
LOG(("Initial working dir: %1").arg(initialWorkingDir));
LOG(("Working dir: %1").arg(cWorkingDir()));
LOG(("Command line: %1").arg(launcher->argumentsString()));
LOG(("Command line: %1").arg(launcher->arguments().join(' ')));
if (!LogsData) {
LOG(("FATAL: Could not open '%1' for writing log!"

View File

@ -46,14 +46,13 @@ private:
} // namespace
Launcher::Launcher(int argc, char *argv[])
: Core::Launcher(argc, argv)
, _arguments(argv, argv + argc) {
: Core::Launcher(argc, argv) {
}
int Launcher::exec() {
for (auto i = begin(_arguments), e = end(_arguments); i != e; ++i) {
if (*i == "-webviewhelper" && std::distance(i, e) > 1) {
Webview::WebKitGTK::SetSocketPath(*(i + 1));
for (auto i = arguments().begin(), e = arguments().end(); i != e; ++i) {
if (*i == u"-webviewhelper"_q && std::distance(i, e) > 1) {
Webview::WebKitGTK::SetSocketPath((i + 1)->toStdString());
return Webview::WebKitGTK::Exec();
}
}

View File

@ -21,8 +21,6 @@ private:
void initHook() override;
bool launchUpdater(UpdaterLaunch action) override;
std::vector<std::string> _arguments;
};
} // namespace Platform