diff options
Diffstat (limited to 'compat/memcmp.c')
| -rw-r--r-- | compat/memcmp.c | 51 | 
1 files changed, 27 insertions, 24 deletions
| diff --git a/compat/memcmp.c b/compat/memcmp.c index 09a5724..c4e25a8 100644 --- a/compat/memcmp.c +++ b/compat/memcmp.c @@ -1,26 +1,21 @@ -/*  +/*   * 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. - * - * SCCS: @(#) memcmp.c 1.2 98/01/19 10:48:58 + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES.   */ -#include "tcl.h"  #include "tclPort.h"  /* - * Here is the prototype just in case it is not included - * in tclPort.h. + * Here is the prototype just in case it is not included in tclPort.h.   */ -int		memcmp _ANSI_ARGS_((CONST VOID *s1, -			    CONST VOID *s2, size_t n)); +int		memcmp(const void *s1, const void *s2, size_t n);  /*   *---------------------------------------------------------------------- @@ -30,11 +25,10 @@ int		memcmp _ANSI_ARGS_((CONST VOID *s1,   *	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, accord- - *     ing as s1 is less  than,  equal  to,  or - *     greater than s2 when taken to be unsigned 8 bit numbers. + *	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. @@ -43,19 +37,28 @@ int		memcmp _ANSI_ARGS_((CONST VOID *s1,   */  int -memcmp(s1, s2, n) -    CONST VOID *s1;			/* First string. */ -    CONST VOID *s2;			/* Second string. */ -    size_t      n;                      /* Length to compare. */ +memcmp( +    const void *s1,		/* First string. */ +    const void *s2,		/* Second string. */ +    size_t n)			/* Length to compare. */  { -    unsigned char u1, u2; +    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; -    for ( ; n-- ; s1++, s2++) { -	u1 = * (unsigned char *) s1; -	u2 = * (unsigned char *) s2; -	if ( u1 != u2) { +	if (u1 != u2) {  	    return (u1-u2);  	}      }      return 0;  } + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ | 
