Hi, On Mon, 25 Jun 2007, René Scharfe wrote: > Rounding down the printed (dis)similarity index allows us to use > "100%" as a special value that indicates complete rewrites and > fully equal file contents, respectively. > > [...] > > +static int similarity_index(struct diff_filepair *p) > +{ > + int result = p->score * 100.0 / MAX_SCORE; > + > + /* Paranoia: guard against floating point rounding errors. */ > + if (p->score == MAX_SCORE) > + result = 100; > + else if (result == 100) > + result = 99; > + > + return result; > +} That's not even properly rounding down. The correct formula (correct in the sense for "what you want") would be p->score * 100.0 / MAX_SCORE if p->score == MAX_SCORE, iff the files are identical. And yes, that is the old formula. Besides, AFAIR p->score is not even calculated if the files are identical, because that hits a different code path. Ciao, Dscho