ScriptVariant *ScriptVariant_Boolean_Not(ScriptVariant * svar) { static ScriptVariant retvar; retvar.vt = VT_INTEGER; retvar.lVal = !ScriptVariant_IsTrue(svar); ScriptVariant_Copy(svar, &retvar); return &retvar; }
return svar; } ScriptVariant *ScriptVariant_ModAssign(ScriptVariant *svar, ScriptVariant *rightChild ) { ScriptVariant_Copy(svar, ScriptVariant_Mod(svar, rightChild)); return svar; } //Logical Operations ScriptVariant *ScriptVariant_Or( ScriptVariant *svar, ScriptVariant *rightChild ) { static ScriptVariant retvar = {{.lVal = 0}, VT_INTEGER}; retvar.lVal = (ScriptVariant_IsTrue(svar) || ScriptVariant_IsTrue(rightChild)); return &retvar; } ScriptVariant *ScriptVariant_And( ScriptVariant *svar, ScriptVariant *rightChild ) { static ScriptVariant retvar = {{.lVal = 0}, VT_INTEGER}; retvar.lVal = (ScriptVariant_IsTrue(svar) && ScriptVariant_IsTrue(rightChild)); return &retvar; } ScriptVariant *ScriptVariant_Bit_Or( ScriptVariant *svar, ScriptVariant *rightChild ) { static ScriptVariant retvar = {{.ptrVal = NULL}, VT_EMPTY}; LONG l1, l2;
ScriptVariant *ScriptVariant_And(ScriptVariant * svar, ScriptVariant * rightChild) { static ScriptVariant retvar; retvar.vt = VT_INTEGER; retvar.lVal = (ScriptVariant_IsTrue(svar) && ScriptVariant_IsTrue(rightChild)); return &retvar; }