#define TRUE 1
#define NULL 0
#define EOS 0
#define MAXPATLEN 100
#define MAXCHAR 128
char *search ();
int max(a,b) int a,b; { return( a>b ? a : b ); }
int count = {0};

main()
{ int fd, i, m, n;
  char *s, *t, *p;

s = "aaaaaaaaaaaaaaab";
t = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
p = search(s,t);
m = strlen(s);
n = strlen(t);
printf("searching %s in %s, returns=%d, strlen(s)=%d, strlen(t)=%d\n",
	s, t, p, m, n );
printf("total comparisons = %d, max=%d, min=%d\n",count,m*(n-m+2)-1,n);

exit(0);
}
     char *search( pat, text )
     char *pat, *text;

     { char *p;

       if( *pat == EOS ) return( text );
       for( p=pat; *text != EOS; text++ ) {
          if( (count++, *text != *p) ) { text -= (p-pat);  p = pat; }
          else if( *(++p) == EOS ) return( text - (p-pat) + 1 );
          }
       return( NULL );
     }
