~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to binutils/libiberty/memcmp.c

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* memcmp -- compare two memory regions.
 
2
   This function is in the public domain.  */
 
3
 
 
4
/*
 
5
 
 
6
@deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, size_t @var{count})
 
7
 
 
8
Compares the first @var{count} bytes of two areas of memory.  Returns
 
9
zero if they are the same, a value less than zero if @var{x} is
 
10
lexically less than @var{y}, or a value greater than zero if @var{x}
 
11
is lexically greater than @var{y}.  Note that lexical order is determined
 
12
as if comparing unsigned char arrays.
 
13
 
 
14
@end deftypefn
 
15
 
 
16
*/
 
17
 
 
18
#include <ansidecl.h>
 
19
#ifdef __STDC__
 
20
#include <stddef.h>
 
21
#else
 
22
#define size_t unsigned long
 
23
#endif
 
24
 
 
25
int
 
26
DEFUN(memcmp, (str1, str2, count),
 
27
      const PTR str1 AND const PTR str2 AND size_t count)
 
28
{
 
29
  register const unsigned char *s1 = (const unsigned char*)str1;
 
30
  register const unsigned char *s2 = (const unsigned char*)str2;
 
31
 
 
32
  while (count-- > 0)
 
33
    {
 
34
      if (*s1++ != *s2++)
 
35
          return s1[-1] < s2[-1] ? -1 : 1;
 
36
    }
 
37
  return 0;
 
38
}
 
39