diff options
author | Hartmut Holzgraefe <hholzgra@php.net> | 2000-05-23 20:07:32 +0000 |
---|---|---|
committer | Hartmut Holzgraefe <hholzgra@php.net> | 2000-05-23 20:07:32 +0000 |
commit | 251cda4941f17a36dc18b7a65be76726bacd4f23 (patch) | |
tree | 75e33f8b7b43a1fc7b5a905f58b4065335ed6312 /ext/standard/levenshtein.c | |
parent | 5d10b23a788c703e21f3506bac3182b86066096c (diff) | |
download | php-git-251cda4941f17a36dc18b7a65be76726bacd4f23.tar.gz |
a little less optimized, but no dirty tricks anymore
Diffstat (limited to 'ext/standard/levenshtein.c')
-rw-r--r-- | ext/standard/levenshtein.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/ext/standard/levenshtein.c b/ext/standard/levenshtein.c index 4227cf05f4..6809ef5752 100644 --- a/ext/standard/levenshtein.c +++ b/ext/standard/levenshtein.c @@ -25,10 +25,11 @@ static int calc_levdist(const char *s1, const char *s2) /* faster, but obfuscated */ { - register char *p1,*p2; + register char *p1,*p2; register int i,j,n; int l1=0,l2=0; char r[512]; + const char *tmp; /* skip equal start sequence, if any */ while(*s1==*s2) { @@ -54,22 +55,15 @@ static int calc_levdist(const char *s1, const char *s2) /* faster, but obfuscate /* reset pointers, adjust length */ s1-=l1++; s2-=l2++; + /* possible dist to great? */ if(abs(l1-l2)>=255) return -1; /* swap if l2 longer than l1 */ if(l1<l2) { - const char *s3; - int l3; - - s3 = s1; - s1 = s2; - s2 = s3; - - l3 = l1; - l1 = l2; - l2 = l3; + tmp=s1; s1=s2; s2=tmp; + l1 ^= l2; l2 ^= l1; l1 ^= l2; } |