diff options
Diffstat (limited to 'contrib/libf2c/libF77/s_cmp.c')
-rw-r--r-- | contrib/libf2c/libF77/s_cmp.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/contrib/libf2c/libF77/s_cmp.c b/contrib/libf2c/libF77/s_cmp.c new file mode 100644 index 0000000..5b43c9e --- /dev/null +++ b/contrib/libf2c/libF77/s_cmp.c @@ -0,0 +1,49 @@ +#include "f2c.h" + +/* compare two strings */ + +integer +s_cmp (char *a0, char *b0, ftnlen la, ftnlen lb) +{ + register unsigned char *a, *aend, *b, *bend; + a = (unsigned char *) a0; + b = (unsigned char *) b0; + aend = a + la; + bend = b + lb; + + if (la <= lb) + { + while (a < aend) + if (*a != *b) + return (*a - *b); + else + { + ++a; + ++b; + } + + while (b < bend) + if (*b != ' ') + return (' ' - *b); + else + ++b; + } + + else + { + while (b < bend) + if (*a == *b) + { + ++a; + ++b; + } + else + return (*a - *b); + while (a < aend) + if (*a != ' ') + return (*a - ' '); + else + ++a; + } + return (0); +} |