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

View File

@ -28,7 +28,7 @@ public:
virtual int exec(); virtual int exec();
QString argumentsString() const; const QStringList &arguments() const;
bool customWorkingDir() const; bool customWorkingDir() const;
uint64 installationTag() 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(("Executable dir: %1, name: %2").arg(cExeDir(), cExeName()));
LOG(("Initial working dir: %1").arg(initialWorkingDir)); LOG(("Initial working dir: %1").arg(initialWorkingDir));
LOG(("Working dir: %1").arg(cWorkingDir())); LOG(("Working dir: %1").arg(cWorkingDir()));
LOG(("Command line: %1").arg(launcher->argumentsString())); LOG(("Command line: %1").arg(launcher->arguments().join(' ')));
if (!LogsData) { if (!LogsData) {
LOG(("FATAL: Could not open '%1' for writing log!" LOG(("FATAL: Could not open '%1' for writing log!"

View File

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

View File

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