1.1 --- a/scanner.c Thu Oct 20 14:13:56 2011 +0200 1.2 +++ b/scanner.c Thu Oct 20 15:21:53 2011 +0200 1.3 @@ -8,6 +8,7 @@ 1.4 1.5 #include "scanner.h" 1.6 #include "suffix_fnc.h" 1.7 +#include "bfile_heuristics.h" 1.8 1.9 int scanDirectory(DIR *dir, const int spaces, 1.10 char* currdir, settings_t* settings) { 1.11 @@ -15,6 +16,7 @@ 1.12 struct dirent *entry; 1.13 int lines, a; 1.14 int lineSum = 0; 1.15 + bool bfile; 1.16 1.17 while ((entry = readdir(dir)) != NULL) { 1.18 if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) { 1.19 @@ -43,6 +45,7 @@ 1.20 1.21 // Count lines 1.22 lines = 0; 1.23 + bfile = false; 1.24 if (testSuffix(filename, settings)) { 1.25 FILE *file = fopen(filename, "r"); 1.26 if (file == NULL) { 1.27 @@ -53,28 +56,25 @@ 1.28 do { 1.29 a = fgetc(file); 1.30 1.31 + bfile = bfile_check(settings->bfileHeuristics, a); 1.32 + 1.33 if (a == 10) { 1.34 lines++; 1.35 } 1.36 - } while (a != EOF); 1.37 + } while (!bfile && a != EOF); 1.38 fclose(file); 1.39 1.40 // Print line count 1.41 - #ifdef _WIN32 1.42 + if (bfile) { 1.43 + printf("%-60s%19s\n", entryname, "binary"); 1.44 + } else { 1.45 printf("%-60s%13d lines\n", entryname, lines); 1.46 - #else 1.47 - printf("%-60s%14d lines\n", entryname, lines); 1.48 - #endif /* _WIN32 */ 1.49 - 1.50 + } 1.51 lineSum += lines; 1.52 } else { 1.53 if (!settings->matchesOnly) { 1.54 // Print hint 1.55 - #ifdef _WIN32 1.56 - printf("%-60s%19s\n", entryname, "no match"); 1.57 - #else 1.58 - printf("%-60s%20s\n", entryname, "no match"); 1.59 - #endif /* _WIN32 */ 1.60 + printf("%-60s%19s\n", entryname, "no match"); 1.61 } 1.62 } 1.63 }