65 lines
1.4 KiB
C
65 lines
1.4 KiB
C
/*
|
||
* memcmp.c --
|
||
*
|
||
* Source code for the "memcmp" library routine.
|
||
*
|
||
* Copyright (c) 1998 Sun Microsystems, Inc.
|
||
*
|
||
* See the file "license.terms" for information on usage and redistribution of
|
||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||
*/
|
||
|
||
#include "tclPort.h"
|
||
|
||
/*
|
||
* Here is the prototype just in case it is not included in tclPort.h.
|
||
*/
|
||
|
||
int memcmp(const void *s1, const void *s2, size_t n);
|
||
|
||
/*
|
||
*----------------------------------------------------------------------
|
||
*
|
||
* memcmp --
|
||
*
|
||
* Compares two bytes sequences.
|
||
*
|
||
* Results:
|
||
* Compares its arguments, looking at the first n bytes (each interpreted
|
||
* as an unsigned char), and returns an integer less than, equal to, or
|
||
* greater than 0, according as s1 is less than, equal to, or greater
|
||
* than s2 when taken to be unsigned 8 bit numbers.
|
||
*
|
||
* Side effects:
|
||
* None.
|
||
*
|
||
*----------------------------------------------------------------------
|
||
*/
|
||
|
||
int
|
||
memcmp(
|
||
const void *s1, /* First string. */
|
||
const void *s2, /* Second string. */
|
||
size_t n) /* Length to compare. */
|
||
{
|
||
const unsigned char *ptr1 = (const unsigned char *) s1;
|
||
const unsigned char *ptr2 = (const unsigned char *) s2;
|
||
|
||
for ( ; n-- ; ptr1++, ptr2++) {
|
||
unsigned char u1 = *ptr1, u2 = *ptr2;
|
||
|
||
if (u1 != u2) {
|
||
return (u1-u2);
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
/*
|
||
* Local Variables:
|
||
* mode: c
|
||
* c-basic-offset: 4
|
||
* fill-column: 78
|
||
* End:
|
||
*/
|