#include <stdio.h>
#include <locale.h>
int
hash(char *s)
{
int c, n;
for (n = 0; c = *s; s++)
n += (c*n+ c << (n%4));
return (n > 0 ? n : -n);
}
void
err(char *s, int a)
{
fprintf(stderr, gettext("Error: "));
fprintf(stderr, s, a);
putc('\n', stderr);
exit(1);
}
int
prefix(char *t, char *s)
{
int c;
while ((c = *t++) == *s++)
if (c == 0)
return (1);
return (c == 0 ? 1 : 0);
}
char *
mindex(char *s, char c)
{
char *p;
for (p = s; *p; p++)
if (*p == c)
return (p);
return (0);
}
void *
zalloc(size_t m, size_t n)
{
char *calloc();
void *t;
#if D1
fprintf(stderr, "calling calloc for %d*%d bytes\n", m, n);
#endif
t = calloc(m, n);
#if D1
fprintf(stderr, "calloc returned %o\n", t);
#endif
return (t);
}