aboutsummaryrefslogtreecommitdiff
path: root/lib/libF77/s_cmp.c
diff options
context:
space:
mode:
authorL Jonas Olsson <ljo@FreeBSD.org>1994-10-26 18:17:41 +0000
committerL Jonas Olsson <ljo@FreeBSD.org>1994-10-26 18:17:41 +0000
commit09c656ca68c8876f0dddec7eda2626d8dc897f2e (patch)
treeacab27bd987cb8ba603a6389fb43d9b4df06310b /lib/libF77/s_cmp.c
parent876f9d834708020dda68772a4812b6143bbbc16e (diff)
downloadsrc-09c656ca68c8876f0dddec7eda2626d8dc897f2e.tar.gz
src-09c656ca68c8876f0dddec7eda2626d8dc897f2e.zip
Library for f2c (part 2 of 2)
Obtained from: netlib.att.com
Notes
Notes: svn path=/cvs2svn/branches/ATT/; revision=3902
Diffstat (limited to 'lib/libF77/s_cmp.c')
-rw-r--r--lib/libF77/s_cmp.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/libF77/s_cmp.c b/lib/libF77/s_cmp.c
new file mode 100644
index 000000000000..1e052f286426
--- /dev/null
+++ b/lib/libF77/s_cmp.c
@@ -0,0 +1,44 @@
+#include "f2c.h"
+
+/* compare two strings */
+
+#ifdef KR_headers
+integer s_cmp(a0, b0, la, lb) char *a0, *b0; ftnlen la, lb;
+#else
+integer s_cmp(char *a0, char *b0, ftnlen la, ftnlen lb)
+#endif
+{
+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);
+}