History

Fix bug with js print() breaking on certain characters

The message text needs to be escaped before beign evaluated.

Ryan Huffman committed 12 years ago

Commit bd56ab91 parent 98c957f1 file · +5 −1Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 1 file). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+5−1
@@ -49,7 +49,11 @@ static QScriptValue soundConstructor(QScriptContext* context, QScriptEngine* eng · 48 unmodified lines
4949
5050 static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){
5151 qDebug() << "script:print()<<" << context->argument(0).toString();
52− engine->evaluate("Script.print('" + context->argument(0).toString() + "')");
52+ QString message = context->argument(0).toString()
53+ .replace("\\", "\\\\")
54+ .replace("\n", "\\n")
55+ .replace("'", "\\'");
56+ engine->evaluate("Script.print('" + message + "')");
5357 return QScriptValue();
5458 }
5559