struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *StrCatUntilStrStr(ds,s,ss) char *ds,*s,*ss; { /* */ char *p,*endp,*dp=ds; if(dp) { do; while(*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%2ld",ds,StrLen(ds)); p=(char *)StrCatUntilStrStr(ds,s,ss); printf("<%12s>%3ld %7x <%6s> %3ld%7x<%6s>%3ld%7x\n",s,StrLen(s),s, ss,StrLen(ss),ss,ds,StrLen(ds),p); if(!ds) puts("ZERO POINTER as destination"); return el; /* */ } int main() { /* MAIN */ long el=0; char s[1024],as[1024]; el--; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); puts(" Input Len String Len Adr Search Len Adr Output Len RetAdr"); StrCpy(as,"StrCpyStr"); StrCpy(s,"test"); el=test("test",as,"Cpy"); el=test("test",as,"CpyStr"); el=test("t",as,"S"); el=test("test",as,"Until"); el=test("test",as,"not"); el=test("test",as,""); el=test("",as,"C"); el=test("","","a"); el=test("","",""); el=test("",0,""); el=test("",as,"Cpy"); el=test("",as,"CpyStr"); 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,0,""); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* Input Len String Len Adr Search Len Adr Output Len RetAdr < test> 4< StrCpyStr> 9 271958 < Cpy> 3 220158 7 220163 < test> 4< StrCpyStr> 9 271958 6 22014C 7 22015A < t> 1< StrCpyStr> 9 271958 < S> 1 220148< t> 1 22014B < test> 4< StrCpyStr> 9 271958 < Until> 5 22013D< test> 4 0 < test> 4< StrCpyStr> 9 271958 < not> 3 220134< test> 4 0 < test> 4< StrCpyStr> 9 271958 < > 0 22012E< test> 4 220133 < > 0< StrCpyStr> 9 271958 < C> 1 22012B< Str> 3 220130 < > 0< > 0 220129 < a> 1 220127< > 0 0 < > 0< > 0 220125 < > 0 220124< > 0 220126 < > 0< > 0 0 < > 0 220122< > 0 0 < > 0< StrCpyStr> 9 271958 < Cpy> 3 22011D< Str> 3 220124 < > 0< StrCpyStr> 9 271958 6 220115< Str> 3 22011F < > 0< StrCpyStr> 9 271958 < S> 1 220112< > 0 220114 < > 0< StrCpyStr> 9 271958 < Until> 5 22010B< > 0 0 < > 0< StrCpyStr> 9 271958 < not> 3 220106< > 0 0 < > 0< StrCpyStr> 9 271958 < > 0 220104< > 0 220105 < > 0< StrCpyStr> 9 271958 < C> 1 220101< Str> 3 220106 < > 0< > 0 2200FF < a> 1 2200FD< > 0 0 < > 0< > 0 2200FB < > 0 2200FA< > 0 2200FC < > 0< > 0 0 < > 0 2200F8< > 0 0 */