1*30488Slepreau static char Sccsid[] = "@(#)substr.c 1.2 02/15/87"; 230480Slepreau /* 330480Slepreau Place the `len' length substring of `as' starting at `as[origin]' 430480Slepreau in `aresult'. 530480Slepreau Return `aresult'. 630480Slepreau 730480Slepreau Note: The copying of as to aresult stops if either the 830480Slepreau specified number (len) characters have been copied, 930480Slepreau or if the end of as is found. 1030480Slepreau A negative len generally guarantees that everything gets copied. 1130480Slepreau */ 1230480Slepreau substr(as,aresult,origin,len)1330480Slepreauchar *substr(as, aresult, origin, len) 1430480Slepreau char *as, *aresult; 1530480Slepreau int origin; 1630480Slepreau register unsigned len; 1730480Slepreau { 1830480Slepreau register char *s, *result; 1930480Slepreau 2030480Slepreau s = as + origin; 2130480Slepreau result = aresult; 2230480Slepreau ++len; 2330480Slepreau while (--len && (*result++ = *s++)) ; 2430480Slepreau if (len == 0) 2530480Slepreau *result = 0; 2630480Slepreau return(aresult); 2730480Slepreau } 28