core/src/commands.cpp
changeset 60 3ad902ef5222
parent 50 e81b4e28b3e2
child 63 ea6622dea85a
child 66 9c352d34f5aa
--- a/core/src/commands.cpp	Wed Sep 01 11:12:38 2010 +0100
+++ b/core/src/commands.cpp	Wed Sep 01 15:17:20 2010 +0100
@@ -3428,16 +3428,19 @@
 			break;
 		case EAdd:
 		case ESubtract:
+		case EMultiply:
 			{
-			if (iArg == NULL) LeaveIfErr(KErrArgument, _L("Argument must be specified for add and subtract operations"));
+			if (iArg == NULL) LeaveIfErr(KErrArgument, _L("Argument must be specified for add, subtract and multiply operations"));
 			TLex lex(*iArg);
 			TInt operand;
 			TInt err = lex.Val(operand);
 			LeaveIfErr(err, _L("Couldn't parse an integer from argument '%S'"), iArg);
-			if (iOperation == ESubtract) operand = -operand;
-			TInt current = 0;
-			TRAP_IGNORE(current = env.GetAsIntL(*iVar1)); // If it doesn't yet exist or isn't an int, we'll treat it as if it was zero
-			env.SetL(*iVar1, current + operand);
+			TInt value = 0;
+			TRAP_IGNORE(value = env.GetAsIntL(*iVar1)); // If it doesn't yet exist or isn't an int, we'll treat it as if it was zero
+			if (iOperation == ESubtract) value = value - operand;
+			else if (iOperation == EMultiply) value = value * operand;
+			else value = value + operand;
+			env.SetL(*iVar1, value);
 			break;
 			}
 		default: