struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *StrCatAfterStrStr(ds,s,ss) register char *ds,*s,*ss; { /* */ register char *p,*dp,*endp; dp=ds; if(dp) { 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) { do{*dp++=*p++;*dp=0;}while(p",s); return os; } long test(os,s,ss) char *os,*s,*ss; { long el=0; char *ds[256],*p; StrCpy(ds,os); printf("%6s%2ld",Str(ds),StrLen(ds)); p=(char *)StrCatAfterStrStr(ds,s,ss); printf("%11s%3ld %7x %8s %3ld%7x%14s%3ld%7x\n",Str(s),StrLen(s),s, Str(ss),StrLen(ss),ss,Str(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"); StrCpy(s,"t"); el=test(s,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 4 9 26B890 3 220167 10 26B47F 4 9 26B890 6 22015B 13 26B482 1 9 26B890 1 220157 2 26B477 4 9 26B890 5 22014C 4 0 4 9 26B890 3 220143 4 0 4 9 26B890 <> 0 22013D 4 26B478 <> 0 9 26B890 1 22013A 4 26B479 <> 0 <> 0 220138 1 220136 <> 0 0 <> 0 <> 0 220134 <> 0 220133 <> 0 26B474 <> 0 <> 0 0 <> 0 220131 <> 0 0 <> 0 9 26B890 3 22012C 6 26B47B <> 0 9 26B890 6 220124 9 26B47E <> 0 9 26B890 1 220121 1 26B476 <> 0 9 26B890 5 22011A <> 0 0 <> 0 9 26B890 3 220115 <> 0 0 <> 0 9 26B890 <> 0 220113 <> 0 26B474 <> 0 9 26B890 1 220110 4 26B479 <> 0 <> 0 22010E 1 22010C <> 0 0 <> 0 <> 0 22010A <> 0 220109 <> 0 26B474 <> 0 <> 0 0 <> 0 220108 <> 0 0 */