struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *StrCpyUntilStrStr(ds,s,ss) char *ds,*s,*ss; { char *p,*dp=ds,*endp; if(dp) { *dp=0; p=s; endp=(char *)StrStr(s,ss); if(!endp) dp=0; if(!*ss) endp=0; if(endp==p) endp=0; if(endp) { do *dp++=*p++; while(p%3ld %7x <%6s> %3ld %7x <%6s> %3ld %7x\n",s,StrLen(s),s, ss,StrLen(ss),ss,os,StrLen(os),p); return el; /* */ } int main() { /* MAIN */ long el=0; char s[1024],as[1024]; el--; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); puts("InputString Len Adr Search Len Adr Output Len Adr"); StrCpy(as,"StrCpyUntilStrStr"); el=test(as,"Cpy"); el=test(as,"S"); el=test(as,"Until"); el=test(as,"not"); el=test(as,""); el=test(as,"C"); el=test("","a"); el=test("",""); el=test(0,""); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* InputString Len Adr Search Len Adr Output Len Adr 17 23E3F8 < Cpy> 3 21C415 < Str> 3 23E2E3 17 23E3F8 < S> 1 21C413 < > 0 23E2E0 17 23E3F8 < Until> 5 21C40D 6 23E2E6 17 23E3F8 < not> 3 21C409 < > 0 0 17 23E3F8 < > 0 21C408 < > 0 23E2E0 17 23E3F8 < C> 1 21C406 < Str> 3 23E2E3 < > 0 21C405 < a> 1 21C403 < > 0 0 < > 0 21C402 < > 0 21C401 < > 0 23E2E0 < > 0 0 < > 0 21C400 < > 0 0 */