1.1 --- a/src/scanner.c Sat Jul 25 17:53:54 2020 +0200 1.2 +++ b/src/scanner.c Sat Jul 25 18:28:01 2020 +0200 1.3 @@ -112,11 +112,11 @@ 1.4 return list; 1.5 } 1.6 1.7 -int scanDirectory(scanner_t scanner, settings_t* settings, 1.8 - string_list_t* output) { 1.9 +void scanDirectory(scanner_t scanner, settings_t* settings, 1.10 + string_list_t* output, scanresult_t* result) { 1.11 1.12 - int lines, a; 1.13 - int lineSum = 0; 1.14 + result->directory = 0; 1.15 + int a; 1.16 bool bfile; 1.17 char *outbuf; 1.18 1.19 @@ -128,15 +128,17 @@ 1.20 if (!S_ISREG(filelist->st_mode)) { 1.21 if (settings->recursive && S_ISDIR(filelist->st_mode)) { 1.22 string_list_t *recoutput = new_string_list_t(); 1.23 - lines = scanDirectory( 1.24 + scanresult_t recresult; 1.25 + scanDirectory( 1.26 (scanner_t) {filelist->filename, scanner.spaces+1}, 1.27 - settings, recoutput); 1.28 - lineSum += lines; 1.29 + settings, recoutput, &recresult); 1.30 + result->directory += recresult.directory; 1.31 if (!settings->matchesOnly || recoutput->count > 0) { 1.32 outbuf = (char*) malloc(81); 1.33 snprintf(outbuf, 81, "%*s/%*s%13d lines\n", 1.34 filelist->displayname_len+scanner.spaces, filelist->displayname, 1.35 - 60-filelist->displayname_len-scanner.spaces-1, "", lines); 1.36 + 60-filelist->displayname_len-scanner.spaces-1, "", 1.37 + recresult.directory); 1.38 add_string(output, outbuf); 1.39 for (int i = 0 ; i < recoutput->count ; i++) { 1.40 add_string(output, recoutput->items[i]); 1.41 @@ -155,7 +157,7 @@ 1.42 && !testSuffix(filelist->displayname, settings->excludeSuffixes)) { 1.43 1.44 /* Count lines */ 1.45 - lines = 0; 1.46 + int lines = 0; 1.47 bfile = false; 1.48 bfile_reset(settings->bfileHeuristics); 1.49 regex_parser_reset(settings->regex); 1.50 @@ -209,7 +211,7 @@ 1.51 add_string(output, outbuf); 1.52 } 1.53 } else { 1.54 - lineSum += lines; 1.55 + result->directory += lines; 1.56 outbuf = (char*) malloc(81); 1.57 snprintf(outbuf, 81, "%*s%*s%13d lines\n", 1.58 filelist->displayname_len+scanner.spaces, filelist->displayname, 1.59 @@ -235,6 +237,4 @@ 1.60 filelist = filelist->next; 1.61 free(freethis); 1.62 } 1.63 - 1.64 - return lineSum; 1.65 }