From 5f33ac545907426624c2c3ed17f430d714b552dc Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 23 Jul 2015 15:30:54 -0700 Subject: [PATCH 1/2] Update script print() to be variadic --- libraries/script-engine/src/ScriptEngine.cpp | 22 +++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 7bb62a01ab..99497c7f55 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -46,13 +46,21 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){ - qCDebug(scriptengine) << "script:print()<<" << context->argument(0).toString(); - QString message = context->argument(0).toString() - .replace("\\", "\\\\") - .replace("\n", "\\n") - .replace("\r", "\\r") - .replace("'", "\\'"); - engine->evaluate("Script.print('" + message + "')"); + QString message = ""; + for (int i = 0; i < context->argumentCount(); i++) { + if (i > 0) { + message += " "; + } + message += context->argument(i).toString(); + } + qCDebug(scriptengine) << "script:print()<<" << message; + + QString scriptMessage = message.replace("\\", "\\\\") + .replace("\n", "\\n") + .replace("\r", "\\r") + .replace("'", "\\'"); + engine->evaluate("Script.print('" + scriptMessage + "')"); + return QScriptValue(); } From 396bb613f8a1a3a9c382c0179bce5bce972f3339 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 23 Jul 2015 15:32:40 -0700 Subject: [PATCH 2/2] Avoid creating a new variable in js print --- libraries/script-engine/src/ScriptEngine.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 99497c7f55..d5e727657c 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -55,11 +55,11 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){ } qCDebug(scriptengine) << "script:print()<<" << message; - QString scriptMessage = message.replace("\\", "\\\\") - .replace("\n", "\\n") - .replace("\r", "\\r") - .replace("'", "\\'"); - engine->evaluate("Script.print('" + scriptMessage + "')"); + message = message.replace("\\", "\\\\") + .replace("\n", "\\n") + .replace("\r", "\\r") + .replace("'", "\\'"); + engine->evaluate("Script.print('" + message + "')"); return QScriptValue(); }