diff -r 4508da679ffb -r 778388400f7b bfile_heuristics.c --- a/bfile_heuristics.c Thu Oct 20 17:29:23 2011 +0200 +++ b/bfile_heuristics.c Fri Oct 21 15:09:26 2011 +0200 @@ -32,20 +32,23 @@ def->bcount++; } - switch (def->level) { - case BFILE_LOW_ACCURACY: - if (def->tcount > 15 || next_char == EOF) { - ret = (1.0*def->bcount)/def->tcount > 0.32; - } - break; - case BFILE_HIGH_ACCURACY: - if (def->tcount > 500 || next_char == EOF) { - ret = (1.0*def->bcount)/def->tcount > 0.1; - } - break; - default: /* BFILE_MEDIUM_ACCURACY */ - if (def->tcount > 100 || next_char == EOF) { - ret = (1.0*def->bcount)/def->tcount > 0.1; + if (def->tcount > 1) { /* empty files are text files */ + switch (def->level) { + case BFILE_LOW_ACCURACY: + if (def->tcount > 15 || next_char == EOF) { + ret = (1.0*def->bcount)/def->tcount > 0.32; + } + break; + case BFILE_HIGH_ACCURACY: + if (def->tcount > 500 || next_char == EOF) { + ret = (1.0*def->bcount)/def->tcount > 0.1; + } + break; + default: /* BFILE_MEDIUM_ACCURACY */ + if (def->tcount > 100 || next_char == EOF) { + ret = (1.0*def->bcount)/def->tcount > 0.1; + } + break; } } }