On Tue, 2008-12-02 at 11:32 +0100, Dirk Bonengel wrote: > I'm looking into it. Only thing - seems to work here.
The reason why hash one is broken is the "workaround" introduced into version 1.5. $body_copy =~ s/[[:graph:]]+//go; This can not work. Hash one is supposed to do this: Condense all consecutive, identical whitespace chars into a single occurrence, then drop the graph chars and compute the md5sum for the remaining whitespace signature. The "workaround" above removes words *first*, usually resulting in a bunch of spaces per line. With the original algorithm, these are exactly what's being hashed! With the "workaround", they falsely get condensed into a single space per line once the original hash generation is being run. -- char *t="[EMAIL PROTECTED]"; main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1: (c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}