/* memcmp -- compare two memory regions.
   This function is in the public domain.  */

/*
NAME
	memcmp -- compare two memory regions

SYNOPSIS
	int memcmp (const void *from, const void *to, size_t count)

DESCRIPTION
	Compare two memory regions and return less than,
	equal to, or greater than zero, according to lexicographical
	ordering of the compared regions.
*/

#include <ansidecl.h>
#ifdef __STDC__
#include <stddef.h>
#else
#define size_t unsigned long
#endif

int
DEFUN(memcmp, (str1, str2, count),
      const PTR str1 AND const PTR str2 AND size_t count)
{
  register const unsigned char *s1 = (const unsigned char*)str1;
  register const unsigned char *s2 = (const unsigned char*)str2;

  while (count-- > 0)
    {
      if (*s1++ != *s2++)
	  return s1[-1] < s2[-1] ? -1 : 1;
    }
  return 0;
}

