| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- /* Unless compiled with -DNO_OVERWRITE, this variant of s_copy allows the
 
-  * target of an assignment to appear on its right-hand side (contrary
 
-  * to the Fortran 77 Standard, but in accordance with Fortran 90),
 
-  * as in  a(2:5) = a(4:7) .
 
-  */
 
- #include "f2c.h"
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- /* assign strings:  a = b */
 
- #ifdef KR_headers
 
- VOID s_copy(a, b, la, lb) register char *a, *b; ftnlen la, lb;
 
- #else
 
- void s_copy(register char *a, register char *b, ftnlen la, ftnlen lb)
 
- #endif
 
- {
 
- 	register char *aend, *bend;
 
- 	aend = a + la;
 
- 	if(la <= lb)
 
- #ifndef NO_OVERWRITE
 
- 		if (a <= b || a >= b + la)
 
- #endif
 
- 			while(a < aend)
 
- 				*a++ = *b++;
 
- #ifndef NO_OVERWRITE
 
- 		else
 
- 			for(b += la; a < aend; )
 
- 				*--aend = *--b;
 
- #endif
 
- 	else {
 
- 		bend = b + lb;
 
- #ifndef NO_OVERWRITE
 
- 		if (a <= b || a >= bend)
 
- #endif
 
- 			while(b < bend)
 
- 				*a++ = *b++;
 
- #ifndef NO_OVERWRITE
 
- 		else {
 
- 			a += lb;
 
- 			while(b < bend)
 
- 				*--a = *--bend;
 
- 			a += lb;
 
- 			}
 
- #endif
 
- 		while(a < aend)
 
- 			*a++ = ' ';
 
- 		}
 
- 	}
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
 
  |