xref: /csrg-svn/old/refer/deliv/deliv2.c (revision 48295)
1*48295Sbostic /*-
2*48295Sbostic  * %sccs.include.proprietary.c%
3*48295Sbostic  */
4*48295Sbostic 
512276Stut #ifndef lint
6*48295Sbostic static char sccsid[] = "@(#)deliv2.c	4.2 (Berkeley) 04/18/91";
7*48295Sbostic #endif /* not lint */
812276Stut 
912276Stut #include <stdio.h>
1012276Stut 
hash(s)1112276Stut hash (s)
1212276Stut char *s;
1312276Stut {
1412276Stut 	int c, n;
1512276Stut 	for(n=0; c= *s; s++)
1612276Stut 		n += (c*n+ c << (n%4));
1712276Stut 	return(n>0 ? n : -n);
1812276Stut }
1912276Stut 
err(s,a)2012276Stut err (s, a)
2112276Stut char *s;
2212276Stut {
2312276Stut 	fprintf(stderr, "Error: ");
2412276Stut 	fprintf(stderr, s, a);
2512276Stut 	putc('\n', stderr);
2612276Stut 	exit(1);
2712276Stut }
2812276Stut 
prefix(t,s)2912276Stut prefix(t, s)
3012276Stut char *t, *s;
3112276Stut {
3212276Stut 	int c;
3312276Stut 
3412276Stut 	while ((c= *t++) == *s++)
3512276Stut 		if (c==0) return(1);
3612276Stut 	return(c==0 ? 1: 0);
3712276Stut }
3812276Stut 
3912276Stut char *
mindex(s,c)4012276Stut mindex(s, c)
4112276Stut char *s;
4212276Stut {
4312276Stut 	register char *p;
4412276Stut 	for( p=s; *p; p++)
4512276Stut 		if (*p ==c)
4612276Stut 			return(p);
4712276Stut 	return(0);
4812276Stut }
4912276Stut 
zalloc(m,n)5012276Stut zalloc(m,n)
5112276Stut {
5212276Stut 	char *calloc();
5312276Stut 	int t;
5412276Stut # if D1
5512276Stut 	fprintf(stderr, "calling calloc for %d*%d bytes\n",m,n);
5612276Stut # endif
5712276Stut 	t = (int) calloc(m,n);
5812276Stut # if D1
5912276Stut 	fprintf(stderr, "calloc returned %o\n", t);
6012276Stut # endif
6112276Stut 	return(t);
6212276Stut }
63