Mercurial > repo
view src/ploki/strutil.c @ 5330:a5d6333f9e41
<int-e> ` sed \'s/==/!=/\' < bin/CaT > bin/cAt; sed \'s/CaT/cAt/\' < bin/WeLcOmE > bin/wElCoMe; chmod +x bin/cAt bin/wElCoMe
author | HackBot |
---|---|
date | Sat, 25 Apr 2015 15:25:38 +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; }