#include #ifndef SDBM_H #define SDBM_H #include static unsigned long sdbm(char *str) { unsigned long hash = 0; for (int c = *str; c != 0; c = *str++) hash = c + (hash << 6) + (hash << 16) - hash; return hash; } static unsigned long sdbm_clean(char *str, size_t size) { unsigned long hash = 0; for (size_t i = 0; i < size + 1; i++) hash = *str + (hash << 6) + (hash << 16) - hash; return hash; } #endif