else if (term->method == "isgreater")
else if (term->method.Equals("isgreater"))
matchAgeInDaysCallback(nsIMdbRow *row, void *aClosure){  matchSearchTerm_t *matchSearchTerm = (matchSearchTerm_t*)aClosure;  const searchTerm *term = matchSearchTerm->term;  nsIMdbEnv *env = matchSearchTerm->env;  nsIMdbStore *store = matchSearchTerm->store;    // fill in the rest of the closure if it's not filled in yet  // this saves us from recalculating this stuff on every row  if (!matchSearchTerm->haveClosure) {    PRInt32 err;    matchSearchTerm->intValue = term->text.ToInteger(&err);    matchSearchTerm->now = PR_Now();    if (err != 0) return PR_FALSE;    matchSearchTerm->haveClosure = PR_TRUE;  }    // XXX convert the property to a column, get the column value  PRInt64 rowDate;  mdb_column column;  mdb_err err = store->StringToToken(env, "LastVisitDate", &column);  mdbYarn yarn;  row->AliasCellYarn(env, column, &yarn);    CharsToPRInt64((const char*)yarn.mYarn_Buf, yarn.mYarn_Fill, &rowDate);  PRInt64 age;  PRInt64 oneThousand;  LL_I2L(oneThousand, 1000);  LL_SUB(age, matchSearchTerm->now, rowDate);  LL_DIV(age, age, oneThousand);  PRInt64 ageInDays;  PRInt64 msecsPerDay;  LL_I2L(msecsPerDay, MSECS_PER_DAY);  LL_DIV(ageInDays, age, msecsPerDay);  PRInt32 days;  LL_L2I(days, ageInDays);  if (term->method == "is")    return (days == matchSearchTerm->intValue);  else if (term->method == "isgreater")    return (days >  matchSearchTerm->intValue);  else if (term->method == "isless")    return (days <  matchSearchTerm->intValue);    return PR_FALSE;}