1169695Skan/* strncmp -- compare two strings, stop after n bytes.
2169695Skan   This function is in the public domain.  */
3169695Skan
4169695Skan/*
5169695Skan
6169695Skan@deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
7169695Skan
8169695SkanCompares the first @var{n} bytes of two strings, returning a value as
9169695Skan@code{strcmp}.
10169695Skan
11169695Skan@end deftypefn
12169695Skan
13169695Skan*/
14169695Skan
15169695Skan#include <ansidecl.h>
16169695Skan#include <stddef.h>
17169695Skan
18169695Skanint
19169695Skanstrncmp(const char *s1, const char *s2, register size_t n)
20169695Skan{
21169695Skan  register unsigned char u1, u2;
22169695Skan
23169695Skan  while (n-- > 0)
24169695Skan    {
25169695Skan      u1 = (unsigned char) *s1++;
26169695Skan      u2 = (unsigned char) *s2++;
27169695Skan      if (u1 != u2)
28169695Skan	return u1 - u2;
29169695Skan      if (u1 == '\0')
30169695Skan	return 0;
31169695Skan    }
32169695Skan  return 0;
33169695Skan}
34