summaryrefslogtreecommitdiff
path: root/libiberty/strncmp.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2000-06-15 20:56:25 +0000
committerH.J. Lu <hjl@lucon.org>2000-06-15 20:56:25 +0000
commitcebb9a4667261b7d10f4cc646801b7885eacc51d (patch)
treece230ec8669d2528ed6a237bfd8a633da145c7b9 /libiberty/strncmp.c
parent4a43e8d841ca963132c00754348d10d05fcc7111 (diff)
downloadgdb-cebb9a4667261b7d10f4cc646801b7885eacc51d.tar.gz
Synced with libiberty in the gcc repository.
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 00000000000..b3b9de16b10
--- /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;
+}