#include <sm/gen.h>
SM_RCSID("@(#)$Id: strrevcmp.c,v 1.2 2001/08/27 22:21:51 gshapiro Exp $")
#include <sm/config.h>
#include <sm/string.h>
#include <string.h>
extern const unsigned char charmap[];
int
sm_strrevcasecmp(s1, s2)
const char *s1, *s2;
{
register int i1, i2;
i1 = strlen(s1) - 1;
i2 = strlen(s2) - 1;
while (i1 >= 0 && i2 >= 0 &&
charmap[(unsigned char) s1[i1]] ==
charmap[(unsigned char) s2[i2]])
{
--i1;
--i2;
}
if (i1 < 0)
{
if (i2 < 0)
return 0;
else
return -1;
}
else
{
if (i2 < 0)
return 1;
else
return (charmap[(unsigned char) s1[i1]] -
charmap[(unsigned char) s2[i2]]);
}
}
int
sm_strrevcmp(s1, s2)
const char *s1, *s2;
{
register int i1, i2;
i1 = strlen(s1) - 1;
i2 = strlen(s2) - 1;
while (i1 >= 0 && i2 >= 0 && s1[i1] == s2[i2])
{
--i1;
--i2;
}
if (i1 < 0)
{
if (i2 < 0)
return 0;
else
return -1;
}
else
{
if (i2 < 0)
return 1;
else
return s1[i1] - s2[i2];
}
}