1/* strncmp -- compare two strings, stop after n bytes.
2   This function is in the public domain.  */
3
4/*
5
6@deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
7
8Compares the first @var{n} bytes of two strings, returning a value as
9@code{strcmp}.
10
11@end deftypefn
12
13*/
14
15#include <ansidecl.h>
16#ifdef ANSI_PROTOTYPES
17#include <stddef.h>
18#else
19#define size_t unsigned long
20#endif
21
22int
23strncmp(s1, s2, n)
24     const char *s1, *s2;
25     register size_t n;
26{
27  register unsigned char u1, u2;
28
29  while (n-- > 0)
30    {
31      u1 = (unsigned char) *s1++;
32      u2 = (unsigned char) *s2++;
33      if (u1 != u2)
34	return u1 - u2;
35      if (u1 == '\0')
36	return 0;
37    }
38  return 0;
39}
40