#include <MyIncludes:strings.h>

long InsStrs(char *string,*insertstring,long firstposition);

long InsStrs(char *s,*ins,long posl)                                   {
  long l,sl,ml,j; char *sc,*InsCharp,*endins; l=0; sl=0;
  endins=ins; while(*s++) sl++; s--; while(*endins++) l++; endins--;
  endins--; ml=(sl-1)/posl; sc=(s+ml*l); j=sl-posl*ml;
  for(sl=0; sl<=j; sl++) *sc--=*s--;
  for(sl=0; sl<ml; sl++) {
   InsCharp=endins;                 /* sc = s-pointer geht gegen -> s */
   for(j=0;j<l; j++,*sc--=*InsCharp--);
   for(j=0;j<posl; j++,*sc--=*s--);
  }                                                 /*  hier *sc = *s */
  return l;
 }                                               /* $VER: InsStrs 0.5 */

int main(int argc,char *argv[]) {                             /* MAIN */
  long al=1,el=0,Zahll,l=0x5555FFFF,il,posl=3; char *s1s[256],*s2s[256];
  char *s[256]; strcpy(s1s,"teststring"); strcpy(s2s," "); memset(s,0,32);
  printf("      string           Insstr               len\n");
  for(il=1;il<11;il++,printf("%14s%32s%8ld %ld\n",s1s,s,strlen(s),el))  {
   strcpy(s,s1s); el=InsStrs(s,"-",il);
  }
  for(il=1;il<5;il++,printf("%14s%32s%8ld %ld\n",s1s,s,strlen(s),el))  {
   strcpy(s,s1s); el=InsStrs(s,"-.",il);
  }
  al=LongToBin(l,s); el=InsStrs(s," ",4); printf("%s  %x\n",s,l);
  return el;
 }                                                               /* END */
