Mercurial > repo
view src/ploki/strutil.c @ 10131:bbbdb09e6365
<boily> le/rn mate//Mat\xc3\xa9 is a southern hemisphere shamanist beverage that opens your inner self to the Sacred World. Its enlightened users become friendly, wishing \xe2\x80\x9cG\'day, mat\xc3\xa9!\xe2\x80\x9d to one another.
author | HackBot |
---|---|
date | Sat, 14 Jan 2017 14:02:22 +0000 |
parents | ac0403686959 |
children |
line wrap: on
line source
#include "strutil.h" #include <string.h> /* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins * from requirements by Colin Plumb. * (http://burtleburtle.net/bob/hash/doobs.html) */ size_t u_hash(const char *s, size_t l, size_t h) { size_t i; for (i = 0; i < l; ++i) { h += (unsigned char)s[i]; h += h << 10; h ^= h >> 6; } h += h << 3; h ^= h >> 11; h += h << 15; return h; } int u_cmp(const char *as, size_t al, const char *bs, size_t bl) { int tmp; if (as == bs && al == bl) return 0; if ((tmp = memcmp(as, bs, al < bl ? al : bl))) return tmp; if (al < bl) return -1; if (al > bl) return 1; return 0; }