rem: while (*string) value = ((value * 31 + (int) *(const unsigned char *) string++) % n_buckets);
add: for (; (ch = *string); string++) value = (value * 31 + ch) % n_buckets;
context: hash_string (const char *string, unsigned n_buckets){  unsigned value = 0;  while (*string)    value = ((value * 31 + (int) *(const unsigned char *) string++)	     % n_buckets);  return value;}