#include "ansi.h"
#include "hash.h"

hash_t
common_hash(str)
	char *str;
{
	hash_t val;

	for (val = HASH_PRIME; *str; str++) {
		val -= (hash_t) *str;
	}

	return val;
}

int
lcase(c)
	int c;
{
	if (c >= 'A' && c <= 'Z') {
		return c - 'A' + 'a';
	}
	return c;
}

hash_t
lcase_hash(str)
	char *str;
{
	hash_t val;
	char c;

	for (val = HASH_PRIME; *str; str++) {
		c = lcase(*str);
		val -= (hash_t) c;
	}

	return val;
}

int
lcasecmp(s1, s2)
	char *s1, *s2;
{
	char c1, c2;

	for (;;) {
		c1 = lcase(*s1++);
		c2 = lcase(*s2++);
		if (c1 != c2 || c1 == 0) break;
	}

	/*
	 * return  0 if s1 == s2
	 * return <0 if s1 < s2
	 * return >0 if s1 > s2
	 */
	return ((int)c1) - ((int)c2);
}


syntax highlighted by Code2HTML, v. 0.9.1