From c8753dcc9a3658b096c34945e804549fc495149d Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 15 Dec 2022 17:25:47 +0000 Subject: [PATCH] ApplicationBase: Assume UTF-8 commandline parameter encoding --- .../messages/juce_ApplicationBase.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/juce_events/messages/juce_ApplicationBase.cpp b/modules/juce_events/messages/juce_ApplicationBase.cpp index 604a649e65..04f534bef6 100644 --- a/modules/juce_events/messages/juce_ApplicationBase.cpp +++ b/modules/juce_events/messages/juce_ApplicationBase.cpp @@ -199,14 +199,12 @@ String JUCEApplicationBase::getCommandLineParameters() { String argString; - for (int i = 1; i < juce_argc; ++i) + for (const auto& arg : getCommandLineParameterArray()) { - String arg { CharPointer_UTF8 (juce_argv[i]) }; - - if (arg.containsChar (' ') && ! arg.isQuotedString()) - arg = arg.quoted ('"'); - - argString << arg << ' '; + const auto withQuotes = arg.containsChar (' ') && ! arg.isQuotedString() + ? arg.quoted ('"') + : arg; + argString << withQuotes << ' '; } return argString.trim(); @@ -214,7 +212,12 @@ String JUCEApplicationBase::getCommandLineParameters() StringArray JUCEApplicationBase::getCommandLineParameterArray() { - return StringArray (juce_argv + 1, juce_argc - 1); + StringArray result; + + for (int i = 1; i < juce_argc; ++i) + result.add (CharPointer_UTF8 (juce_argv[i])); + + return result; } int JUCEApplicationBase::main (int argc, const char* argv[])