freebsd-dev/contrib/libf2c/libF77/s_cmp.c

50 lines
647 B
C
Raw Normal View History

1999-09-18 10:51:31 +00:00
#include "f2c.h"
/* compare two strings */
2003-07-11 03:42:19 +00:00
integer
s_cmp (char *a0, char *b0, ftnlen la, ftnlen lb)
1999-09-18 10:51:31 +00:00
{
2003-07-11 03:42:19 +00:00
register unsigned char *a, *aend, *b, *bend;
a = (unsigned char *) a0;
b = (unsigned char *) b0;
aend = a + la;
bend = b + lb;
1999-09-18 10:51:31 +00:00
2003-07-11 03:42:19 +00:00
if (la <= lb)
{
while (a < aend)
if (*a != *b)
return (*a - *b);
else
{
++a;
++b;
}
1999-09-18 10:51:31 +00:00
2003-07-11 03:42:19 +00:00
while (b < bend)
if (*b != ' ')
return (' ' - *b);
else
++b;
}
1999-09-18 10:51:31 +00:00
2003-07-11 03:42:19 +00:00
else
{
while (b < bend)
if (*a == *b)
{
++a;
++b;
}
else
return (*a - *b);
while (a < aend)
if (*a != ' ')
return (*a - ' ');
else
++a;
}
return (0);
1999-09-18 10:51:31 +00:00
}