1*30480Slepreau static char Sccsid[] "@(#)substr	2.2";
2*30480Slepreau /*
3*30480Slepreau 	Place the `len' length substring of `as' starting at `as[origin]'
4*30480Slepreau 	in `aresult'.
5*30480Slepreau 	Return `aresult'.
6*30480Slepreau 
7*30480Slepreau   Note: The copying of as to aresult stops if either the
8*30480Slepreau 	specified number (len) characters have been copied,
9*30480Slepreau 	or if the end of as is found.
10*30480Slepreau 	A negative len generally guarantees that everything gets copied.
11*30480Slepreau */
12*30480Slepreau 
13*30480Slepreau char *substr(as, aresult, origin, len)
14*30480Slepreau char *as, *aresult;
15*30480Slepreau int origin;
16*30480Slepreau register unsigned len;
17*30480Slepreau {
18*30480Slepreau 	register char *s, *result;
19*30480Slepreau 
20*30480Slepreau 	s = as + origin;
21*30480Slepreau 	result = aresult;
22*30480Slepreau 	++len;
23*30480Slepreau 	while (--len && (*result++ = *s++)) ;
24*30480Slepreau 	if (len == 0)
25*30480Slepreau 		*result = 0;
26*30480Slepreau 	return(aresult);
27*30480Slepreau }
28