Thread

Index > Scribe > Scripting bug: multiple conditions in IF statement
Author/Date Scripting bug: multiple conditions in IF statement
Scott
07/11/2019 10:40pm
When I include multiple conditions in an IF statement, I get the following error: "Error: Can't alloc register, Regs=0xff"

Here's the offending code:
if ((Mail.Subject.Find("Villa") >= 0 ) || (Mail.Subject.Find("Italy") >= 0 )) {
     Fd = GetFolder(foldName + "/Italy");
} else if (Mail.Subject.Find("Villa") >= 0 ) {
     Fd = GetFolder(foldName + "/Italy");
} else if (Mail.Subject.Find("Italy") >= 0 ) {
     Fd = GetFolder(foldName + "/Italy");
}

If I remove the first IF statement, then the error goes away.
fret
08/11/2019 11:00am
I'll have a look at this. But I expect you could probably work around the limitation in the short term by pulling those values into local variables before testing them:


Villa = Mail.Subject.Find("Villa");
Italy = Mail.Subject.Find("Italy");

if ((Villa >= 0 ) || (Italy >= 0 )) {
     Fd = GetFolder(foldName + "/Italy");
} else if (Villa >= 0 ) {
     Fd = GetFolder(foldName + "/Italy");
} else if (Italy >= 0 ) {
     Fd = GetFolder(foldName + "/Italy");
}
Scott
09/11/2019 11:49pm
Unfortunately, the workaround has the same issue.
Scott
09/03/2020 12:53am
It looks like the underlying problem is the '||' operator.
Using this assumption, leads to the following workaround (which works well):

if (Mail.Subject.Find("villa").Lower() + Mail.Subject.Find("Italy") > -2 )
{
    Fd = GetFolder(foldName + "/Italy");
}
Reply