aboutsummaryrefslogtreecommitdiff
path: root/libiberty/strncmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libiberty/strncmp.c')
-rw-r--r--libiberty/strncmp.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/libiberty/strncmp.c b/libiberty/strncmp.c
new file mode 100644
index 0000000..b3b9de1
--- /dev/null
+++ b/libiberty/strncmp.c
@@ -0,0 +1,28 @@
+/* strncmp -- compare two strings, stop after n bytes.
+ This function is in the public domain. */
+
+#include <ansidecl.h>
+#ifdef __STDC__
+#include <stddef.h>
+#else
+#define size_t unsigned long
+#endif
+
+int
+strncmp(s1, s2, n)
+ const char *s1, *s2;
+ register size_t n;
+{
+ register unsigned char u1, u2;
+
+ while (n-- > 0)
+ {
+ u1 = (unsigned char) *s1++;
+ u2 = (unsigned char) *s2++;
+ if (u1 != u2)
+ return u1 - u2;
+ if (u1 == '\0')
+ return 0;
+ }
+ return 0;
+}