/* 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 "clapack.h"/* assign strings: a = b */voids_copy(registerchar*a,registerchar*b,ftnlenla,ftnlenlb){registerchar*aend,*bend;aend=a+la;if(la<=lb)if(a<=b||a>=b+la)while(a<aend)*a++=*b++;elsefor(b+=la;a<aend;)*--aend=*--b;else{bend=b+lb;if(a<=b||a>=bend)while(b<bend)*a++=*b++;else{a+=lb;while(b<bend)*--a=*--bend;a+=lb;}while(a<aend)*a++=' ';}}