From 67093bfe10adebb70ca3dcdac78ec805db49b05f Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 18 Feb 2021 15:51:47 +0000 Subject: [PATCH] juceaide: Be explicit about commandline argument encoding --- extras/Build/juceaide/Main.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/extras/Build/juceaide/Main.cpp b/extras/Build/juceaide/Main.cpp index 287a199b30..a2e2fc579e 100644 --- a/extras/Build/juceaide/Main.cpp +++ b/extras/Build/juceaide/Main.cpp @@ -483,7 +483,19 @@ int main (int argc, char** argv) return juce::ConsoleApplication::invokeCatchingFailures ([argc, argv] { - juce::ArgumentList argumentList { argc, argv }; + if (argc < 1) + juce::ConsoleApplication::fail ("No arguments passed", 1); + + const auto getString = [&] (const char* text) + { + return juce::String (juce::CharPointer_UTF8 (text)); + }; + + std::vector arguments; + std::transform (argv, argv + argc, std::back_inserter (arguments), getString); + + juce::ArgumentList argumentList { arguments.front(), + juce::StringArray (arguments.data() + 1, arguments.size() - 1) }; using Fn = typename std::add_lvalue_reference::type;