HashList *Hash = (HashList*) MSetList;
long HashAt;
long EndAt;
+ long StartAt;
if (Hash == NULL)
return 0;
HashAt -=1;
/* Fetch the actual data */
+ StartAt = Hash->LookupTable[HashAt]->Key;
MemberPosition = Hash->LookupTable[HashAt]->Position;
EndAt = *(long*) Hash->Members[MemberPosition]->Data;
- if (EndAt == LONG_MAX)
+ if ((MsgNo >= StartAt) && (EndAt == LONG_MAX))
return 1;
/* no range? */
if (EndAt == 0)
return 0;
/* inside of range? */
- if (EndAt >= MsgNo)
+ if ((StartAt <= MsgNo) && (EndAt >= MsgNo))
return 1;
return 0;
}
const char *MSetStrings[] = {
+ "11:63",
"65",
"1,65,77",
"1:65,77,80:*",
#define InMSet 0
#define NotInMSet 1
-const long MessageNumbers[4][2][10] = {
+const long MessageNumbers[5][2][10] = {
/* First MSet */
+ {
+ {11, 59, 63, 0, 0, 0, 0, 0, 0, 0}, /* In */
+ {2, 10, 64, 65, 0, 0, 0, 0, 0, 0} /* NotIn */
+ },
{
{65, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* In */
{1, 64, 66, 0, 0, 0, 0, 0, 0, 0} /* NotIn */
StrBufPlain(MSetStr, MSetStrings[nTest], -1);
ParseMSet(&OneMSet, MSetStr);
-#ifdef VERBOSE_TEST
+//#ifdef VERBOSE_TEST
printf("---%s---\n", ChrPtr(MSetStr));
{
const char *HashKey;
}
DeleteHashPos(&at);
}
-#endif
+//#endif
j = 0;
while (MessageNumbers[nTest][InMSet][j] != 0)
ChrPtr(MSetStr),
MessageNumbers[nTest][InMSet][j]);
CU_FAIL(ChrPtr(Assert));
+ printf(ChrPtr(Assert));
}
else
{
ChrPtr(MSetStr),
MessageNumbers[nTest][NotInMSet][j]);
CU_FAIL(ChrPtr(Assert));
+ printf(ChrPtr(Assert));
}
else
{