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
|
|
|
}
|