diff options
Diffstat (limited to 'src/filter-env/bmh_search.c')
-rw-r--r-- | src/filter-env/bmh_search.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/src/filter-env/bmh_search.c b/src/filter-env/bmh_search.c deleted file mode 100644 index 4d9f74c..0000000 --- a/src/filter-env/bmh_search.c +++ /dev/null @@ -1,21 +0,0 @@ -/* raided from http://www.dcc.uchile.cl/~rbaeza/handbook/algs/7/713b.srch.c.html -aparently distributed by Addison-Wesley Publishing Co. Inc, http://aw.com/ -*/ - -#include <string.h> -#define MAXCHAR 256 - -const char *bmh_search( const char *pat, const char *text, int n ) -{ int i, j, k, m, skip[MAXCHAR]; - - m = strlen(pat); - if( m==0 ) return( text ); - for( k=0; k<MAXCHAR; k++ ) skip[k] = m; - for( k=0; k<m-1; k++ ) skip[pat[k]] = m-k-1; - - for( k=m-1; k < n; k += skip[text[k] & (MAXCHAR-1)] ) { - for( j=m-1, i=k; j>=0 && text[i] == pat[j]; j-- ) i--; - if( j == (-1) ) return( text+i+1 ); - } - return( NULL ); -} |