From 4f0c8a88123f501044cd88939f9a8c90585e8397 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Wed, 20 Jan 2010 21:06:03 +0000 Subject: [PATCH] subs doesn't act on the KLocalizedString itself, but returns a new one. so we need to assign it to our message each time we call subs(..) so that the values are actually captured. svn path=/branches/KDE/4.4/kdebase/runtime/; revision=1077765 --- .../javascript/simplebindings/i18n.h | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/scriptengines/javascript/simplebindings/i18n.h b/scriptengines/javascript/simplebindings/i18n.h index c22285832..5f5c52b35 100644 --- a/scriptengines/javascript/simplebindings/i18n.h +++ b/scriptengines/javascript/simplebindings/i18n.h @@ -22,22 +22,26 @@ QScriptValue jsi18n(QScriptContext *context, QScriptEngine *engine) { + Q_UNUSED(engine) + if (context->argumentCount() < 1) { return context->throwError(i18n("i18n() takes at least one argument")); } KLocalizedString message = ki18n(context->argument(0).toString().toUtf8()); - int numArgs = context->argumentCount(); + const int numArgs = context->argumentCount(); for (int i = 1; i < numArgs; ++i) { - message.subs(context->argument(i).toString()); + message = message.subs(context->argument(i).toString()); } - return engine->newVariant(message.toString()); + return message.toString(); } QScriptValue jsi18nc(QScriptContext *context, QScriptEngine *engine) { + Q_UNUSED(engine) + if (context->argumentCount() < 2) { return context->throwError(i18n("i18nc() takes at least two arguments")); } @@ -45,16 +49,18 @@ QScriptValue jsi18nc(QScriptContext *context, QScriptEngine *engine) KLocalizedString message = ki18nc(context->argument(0).toString().toUtf8(), context->argument(1).toString().toUtf8()); - int numArgs = context->argumentCount(); + const int numArgs = context->argumentCount(); for (int i = 2; i < numArgs; ++i) { - message.subs(context->argument(i).toString()); + message = message.subs(context->argument(i).toString()); } - return engine->newVariant(message.toString()); + return message.toString(); } QScriptValue jsi18np(QScriptContext *context, QScriptEngine *engine) { + Q_UNUSED(engine) + if (context->argumentCount() < 2) { return context->throwError(i18n("i18np() takes at least two arguments")); } @@ -62,16 +68,18 @@ QScriptValue jsi18np(QScriptContext *context, QScriptEngine *engine) KLocalizedString message = ki18np(context->argument(0).toString().toUtf8(), context->argument(1).toString().toUtf8()); - int numArgs = context->argumentCount(); + const int numArgs = context->argumentCount(); for (int i = 2; i < numArgs; ++i) { - message.subs(context->argument(i).toString()); + message = message.subs(context->argument(i).toString()); } - return engine->newVariant(message.toString()); + return message.toString(); } QScriptValue jsi18ncp(QScriptContext *context, QScriptEngine *engine) { + Q_UNUSED(engine) + if (context->argumentCount() < 3) { return context->throwError(i18n("i18ncp() takes at least three arguments")); } @@ -80,12 +88,12 @@ QScriptValue jsi18ncp(QScriptContext *context, QScriptEngine *engine) context->argument(1).toString().toUtf8(), context->argument(2).toString().toUtf8()); - int numArgs = context->argumentCount(); + const int numArgs = context->argumentCount(); for (int i = 3; i < numArgs; ++i) { - message.subs(context->argument(i).toString()); + message = message.subs(context->argument(i).toString()); } - return engine->newVariant(message.toString()); + return message.toString(); } void bindI18N(QScriptEngine *engine)