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