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