diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-09-22 18:57:19 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-09-22 18:57:19 (GMT) |
commit | 2aff4a96fa0286d875bddec0019648e2c6431cbc (patch) | |
tree | f7a9a4800a3f3ad4b77470b8383529176d8b7181 /tcl8.6/compat/memcmp.c | |
parent | 3fa8e6dc88e8041b6cb88d1b1e9c05676d3346b7 (diff) | |
parent | 29ccecd87709feda60d191f6aaba324ccad91f55 (diff) | |
download | blt-2aff4a96fa0286d875bddec0019648e2c6431cbc.zip blt-2aff4a96fa0286d875bddec0019648e2c6431cbc.tar.gz blt-2aff4a96fa0286d875bddec0019648e2c6431cbc.tar.bz2 |
Merge commit '29ccecd87709feda60d191f6aaba324ccad91f55' as 'tcl8.6'
Diffstat (limited to 'tcl8.6/compat/memcmp.c')
-rw-r--r-- | tcl8.6/compat/memcmp.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/tcl8.6/compat/memcmp.c b/tcl8.6/compat/memcmp.c new file mode 100644 index 0000000..c4e25a8 --- /dev/null +++ b/tcl8.6/compat/memcmp.c @@ -0,0 +1,64 @@ +/* + * 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: + */ |